목록Programmers (190)
GitHubSeob

문제 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 문제풀이 DFS를 이용하여 모든 경우의 수를 탐색한다. num이 끝 수이면 더 이상 할 연산이 없으므로 목푯값인 target과 같은지를 확인하고, 같다면 answer의 개수를 1 늘린다. num이 끝 수가 아닐 때 다음 숫자를 +하는 경우의 수, 다음 숫자를 -하는 경우의 수를 확인한다. 코드 #incl..

문제 https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 8주차_최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 문제풀이 sizes를 탐색하면서 [idx1][0]인 부분을 더 큰 수, [idx1][1]인 부분을 더 작은 수로 바꾼다. [idx1][0]끼리, [idx1][1]끼리 max_length값을 계속 경신한다. 둘을 곱한 값을 return 한다. 코드 #include #include #include using namespace std; int solution..

문제 https://programmers.co.kr/learn/courses/30/lessons/87389 코딩테스트 연습 - 나머지가 1이 되는 수 찾기 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입 programmers.co.kr 문제풀이 1부터 n-1까지 반복하면서 n을 해당 수로 나눴을 때 나머지가 1이면 return 한다. 코드 #include #include using namespace std; int solution(int n) { for(int idx=1;idx

문제 https://programmers.co.kr/learn/courses/30/lessons/12947 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr 문제풀이 sum에 10으로 나눈 나머지를 계속 더하고 x는 10으로 나눈다. x가 0이 되면 num% sum을해서 0이 나오면 true를, 나머지가 있으면 false를 return 한다. 코드 #include #include using namespace std; bool solution(int x) { bool answer = t..

문제 https://programmers.co.kr/learn/courses/30/lessons/12944 코딩테스트 연습 - 평균 구하기 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr programmers.co.kr 문제풀이 에 있는 원소의 합을 더하는 accumulate함수를 사용한다. 그다음 arr의 크기만큼 나누어서 return 한다. 코드 #include #include #include using namespace std; double solution(vector arr) { double answer ..

문제 https://programmers.co.kr/learn/courses/30/lessons/12943 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr 문제풀이 문제 설명대로 짝수라면 2로 나누고 홀수라면 3을 곱하고 1을 더한다. 500번을 돌렸는데도 값이 안 나오면 -1을 return 한다. while문을 이용해서 횟수가 500번 또는 숫자가 1이 될 때까지 무한 반복한다. 코드 #include #include using namespace std; int solution(..

문제 https://programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 문제풀이 최대공약수는 유클리드 호제법을 이용해 풀었다. 최소공배수는 최대공약수 최소공배수 관계를 이용해 풀었다. 코드 #include #include #include using namespace std; int Getgcd(int a, int b) { int temp = 0; while (1) { if (a % b == 0)..

문제 https://programmers.co.kr/learn/courses/30/lessons/12937 코딩테스트 연습 - 짝수와 홀수 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" programmers.co.kr 문제풀이 2로 나눠 나머지가 없으면 짝수이므로 Even을, 나머지가 있으면 홀수이므로 Odd를 return 한다. 코드 #include #include using namespace std; string solution(int num) { string answer = ""; if(num%2==..

문제 https://programmers.co.kr/learn/courses/30/lessons/12935 코딩테스트 연습 - 제일 작은 수 제거하기 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1 programmers.co.kr 문제풀이 코드 #include #include #include using namespace std; vector solution(vector arr) { vector answer; int min_num = *min_element(arr.begin(), arr.end()); if (arr.size() == 1)..