Coding Test
-
[프로그래머스] 체육복 c++Coding Test/programmers 2022. 9. 13. 20:45
문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를..
-
[프로그래머스] 두 개 뽑아서 더하기 c++Coding Test/programmers 2022. 9. 13. 13:51
문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 사항 numbers의 길이는 2 이상 100 이하입니다. numbers의 모든 수는 0 이상 100 이하입니다. 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] 풀이 순열을 사용한 조합 구하는 방법을 사용했습니다. nCr = numbers.size() C 2 조합을 구하기 위해서 보조 수열이 필요합니다. 1.보조 수열은 numbers사이즈 크기로 생성하고, 0으로 초기화 합니다. 2. 2개만 뽑아야 ..
-
[프로그래머스] 3진법 뒤집기 c++Coding Test/programmers 2022. 9. 13. 12:53
문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한 사항 n은 1 이상 100,000,000 이하인 자연수입니다. 입출력 예 n result 45 7 125 229 풀이 string을 사용한 풀이 방식입니다. #include #include #include using namespace std; int solution(int n) { int answer = 0; string strThird(""); while(n > 0){ int tmp = n % 3; n /= 3; strThird += to_string(tmp); } int len = strThird.size() - 1; ..
-
[프로그래머스] 약수의 개수와 덧셈 c++Coding Test/programmers 2022. 9. 13. 09:15
문제 설명 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한 사항 1 ≤ left ≤ right ≤ 1,000 입출력 예 left right result 13 17 43 24 27 52 풀이 #include #include using namespace std; int solution(int left, int right) { int answer = 0; for(int i = left; i > 1; i b ? 0 : sign(a)*a + solution(a + 1, b); }