본문 바로가기

분류 전체보기171

[C++][leetcode] Maximum Subarray :: seoftware 문제 접근방법 다이나믹 프로그래밍을 사용하려고 했는데 굳이 새로운 배열을 만들 필요는 없을것 같아서 max 값을 계속 업데이트 해주는 방식으로 접근! 소스코드 class Solution { public: int maxSubArray(vector& nums) { int max = 0; bool all_negative = true; for(int i = 0; i 0){ int tmp = 0; all_negative = false; for(int j = i; j max) max = tmp; } } } if(all_negative) { max = nums[0]; for(int i : nums){ if(max < i) max = i; } } return max; } }; 빨리 풀라고 시작이 양수인 것만 subar.. 2020. 4. 3.
[C++][leetcode] single number :: seoftware 문제 접근방법 배열을 정렬한 후 자기의 오른쪽과 값을 비교한다. 같으면 패스, 다르면 그 값을 리턴! 소스코드 class Solution { public: int singleNumber(vector& nums) { sort(nums.begin(), nums.end(), greater()); int target = -1; for(int i = 0; i 2020. 4. 3.
[C++][leetcode] happy numbers :: seoftware 문제 접근방법 무한루프에 빠지게 되는 조건이 뭘까? 똑같은 숫자가 또 나오면 무한루프에 빠진다! 따라서, 루프를 돌 때마다 나오는 결과값을 저장해 놨다가 또 나오는지 확인하는 과정이 필요하다. 소스코드 class Solution { bool isVisited(int x, vector&arr){ if(arr.empty()) return false; for(int i : arr){ if(x==i) return true; } return false; } public: bool isHappy(int n) { vector arr; int m = n; int cur; while(1){ cur = 0; while(m>0){ cur += (m%10)*(m%10); m /= 10; } if(cur == 1) return.. 2020. 4. 3.
[C++] 백준 1920번 수 찾기 :: seoftware 문제 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1≤N≤100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1≤M≤100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다. www.acmicpc.net 소스코드 #include #include using namespace std; int arrA[100000]; int arrB[100000]; int result[100000]; int main(void) { //input int N, M; scanf("%d".. 2020. 3. 28.
[C++][프로그래머스] 위장 - 해시 :: seoftware 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 얼굴 동그란 안경, 검정 선글라스 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. cloth.. 2020. 3. 27.
[C++] 백준 1436번 영화감독 숌 :: seoftware 문제 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조 www.acmicpc.net 소스코드 #include using namespace std; int main(void) { int N; cin >> N; in.. 2020. 3. 26.
[C++] 백준 1874번 스택 수열 :: seoftware 문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 소스코드 #include #include using namespace std; int seq[100000]; char result[200000]; int main(void) { //input int N; cin >> N; for (int n = 0; n < N; n++) { scanf("%d", &seq[n]).. 2020. 3. 18.
[C++] 백준 2231번 분해합 :: seoftware 문제 https://www.acmicpc.net/problem/2231 2231번: 분해합 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그 www.acmicpc.net 소스코드 #include #include using namespace std; int main(void) { int N; cin >>.. 2020. 3. 14.
[C++] 백준 1181번 단어 정렬 :: seoftware 문제 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1≤N≤20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 소스코드 #include #include #include #include using namespace std; bool compare(string x, string y) { if (x.length() == y.length()) { return x >.. 2020. 3. 13.