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); }
-
[프로그래머스] 문자열을 정수로 바꾸기 c++Coding Test/programmers 2022. 9. 12. 16:44
문제 설명 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 사항 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 "0"으로 시작하지 않습니다. 입출력 예 예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다. 풀이 stoi 함수는 음수도 처리가 가능합니다. #include #include using namespace std; int solution(string s) { int answer = 0; answer = stoi(s); return answe..
-
[프로그래머스] 하샤드 수 C++Coding Test/programmers 2022. 9. 12. 16:39
문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 사항 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 arr return 10 true 12 true 11 false 13 false 풀이 #include #include using namespace std; bool solution(int x) { bool answer = true; int n = 0, nH = x; while(nH > 0){ n += nH % 10; nH /= 10; } answer = ..