Coding Test
-
[프로그래머스] 정수 제곱근 판별 c++Coding Test/programmers 2022. 9. 12. 15:54
문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예 n return 121 144 3 -1 풀이 #include #include #include using namespace std; long long solution(long long n) { long long answer = 0; answer = sqrt(n); if(answer * answer != n) return -1; return (answer + 1) * (answer + 1);..
-
[프로그래머스] 자릿수 더하기 c++Coding Test/programmers 2022. 9. 12. 15:42
문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한 사항 N의 범위 : 100,000,000 이하의 자연수 입출력 예 N answer 123 6 987 24 풀이 #include #include using namespace std; int solution(int n) { int answer = 0; string strN = to_string(n); for(const auto &it : strN){ answer += it - '0'; } return answer; } 다른 풀이 int solution(int n) { int answer = 0; whil..
-
[프로그래머스] 짝수와 홀수 c++Coding Test/programmers 2022. 9. 12. 15:28
문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 사항 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" 풀이 num % 2 결과로 음수가 나올 수 있으니 절댓값으로 계산한다. #include #include #include using namespace std; string solution(int num) { string answer = ""; if(abs(num) % 2 == 1){ return "Odd"; } return "Even"; } And연산으로 짝수, 홀수를 판단하는 방법도 있다. #include #include using namespace..
-
[프로그래머스] 부족한 금액 계산하기 c++Coding Test/programmers 2022. 9. 8. 14:27
문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 제한 사항 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수 놀이기구의 이용 횟수 ..
-
[프로그래머스] 나머지가 1이 되는 수 찾기 c++Coding Test/programmers 2022. 9. 8. 14:17
문제 설명 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한 사항 3 ≤ n ≤ 1,000,000 입출력 예 n result 10 3 12 11 풀이 입력 값 n은 3부터 주어진다. for문은 n-1의 최소 값은 2 이므로, 반복문은 2부터 n-1까지 진행하도록 한다. #include #include using namespace std; int solution(int n) { int answer = 0; for(int i = 1; i < n; i++){ if(n % i == 1) return i; } return answer; }
-
[프로그래머스] 두 큐 합 같게 만들기 c++Coding Test/programmers 2022. 9. 5. 15:00
문제 설명 같은 크기의 vector가 두개 주어지고, 두 벡터의 원소들의 합/2 == 벡터1, 벡터2 각 원소들의 합과 같도록 원소를 이동시켜야한다. 벡터1의 원소들의 합과 벡터2의 원소들의 합이 같은지 확인하면 된다. (문제는 queue라고 하는데 인자는 vector 형으로 주어진다.) 한 번의 pop과 한 번의 insert 작업은 1회 수행한 것으로 간주한다. 제한 사항 1 ≤ queue1의 길이 = queue2의 길이 ≤ 300,000 1 ≤ queue1의 원소, queue2의 원소 ≤ 109 주의: 언어에 따라 합 계산 과정 중 산술 오버플로우 발생 가능성이 있으므로 long type 고려가 필요합니다. 입출력 예 queue1 queue2 result [3, 2, 7, 2] [4, 6, 5, 1]..