본문 바로가기

프로그래머스코딩테스트연습풀이/C언어174

[프로그래머스/C언어] 소인수분해 문제 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 솔루션 #include #include #include int* solution(int n) { // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. int* answer = (int*)malloc(sizeof(int) * n); int m = 0; while(1){ for(int i = 2; i 2023. 8. 30.
[프로그래머스/C언어] 이진수 더하기 문제 이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요. 솔루션 #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. char* solution(const char* bin1, const char* bin2) { // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. int max = 0; if(strlen(bin1) > strlen(bin2)) max = strlen(bin1); else max = strlen(bin2); char* answer = (char*.. 2023. 8. 30.
[프로그래머스/C언어] 배열의 길이를 2의 거듭제곱으로 만들기 문제 정수 배열 arr이 매개변수로 주어집니다. arr의 길이가 2의 정수 거듭제곱이 되도록 arr 뒤에 정수 0을 추가하려고 합니다. arr에 최소한의 개수로 0을 추가한 배열을 return 하는 solution 함수를 작성해 주세요. 솔루션 #include #include #include // arr_len은 배열 arr의 길이입니다. int* solution(int arr[], size_t arr_len) { // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. int* answer = (int*)malloc(1000 * 2 * sizeof(int)); int cnt = 2; int i; while(1){ if(cnt >= arr_len) brea.. 2023. 8. 21.
[프로그래머스/C언어] 한 번만 등장한 문자 문제 문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다. 솔루션 #include #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. char* solution(const char* s) { // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. char* answer = (char*)malloc(strlen(s)); int arr['z'-'a'+1] = {0,}; int n = 0; for(.. 2023. 8. 21.
[프로그래머스/C언어] 진료 순서 정하기 문제 외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요. 솔루션 #include #include #include // emergency_len은 배열 emergency의 길이입니다. int* solution(int emergency[], size_t emergency_len) { // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. int* answer = (int*)malloc(emergency_len * sizeof(int)); int n = 0; int max .. 2023. 8. 20.
[프로그래머스/C언어] 배열 만들기 5 문제 문자열 배열 intStrs와 정수 k, s, l가 주어집니다. intStrs의 원소는 숫자로 이루어져 있습니다. 배열 intStrs의 각 원소마다 s번 인덱스에서 시작하는 길이 l짜리 부분 문자열을 잘라내 정수로 변환합니다. 이때 변환한 정수값이 k보다 큰 값들을 담은 배열을 return 하는 solution 함수를 완성해 주세요. 솔루션 #include #include #include // intStrs_len은 배열 intStrs의 길이입니다. // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. int* solution(const char* intStrs[], size_t intStrs_len, int k, int s, int l) { // ret.. 2023. 8. 20.
[프로그래머스/C언어] 영어가 싫어요 문제 영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요. 솔루션 #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. long long solution(const char* numbers) { long long answer = 0; int i = 0; while(numbers[i] != '\0'){ if(strncmp(numbers+i, "one", 3) == 0){ answer = answer * 10 + 1; i += 3; } if(strncmp(numbe.. 2023. 8. 16.
[프로그래머스/C언어] 문자열 계산하기 문제 my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요. 솔루션 #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. int solution(const char* my_string) { int answer = 0; int i = 0; int num1 = 0; int num2 = 0; char op; while(1){ num1 = num1 * 10 + my_string[i] - '0'; i++; if(my_string[i] == ' ') break; } while(my_strin.. 2023. 8. 16.
[프로그래머스/C언어] 7의 개수 문제 머쓱이는 행운의 숫자 7을 가장 좋아합니다. 정수 배열 array가 매개변수로 주어질 때, 7이 총 몇 개 있는지 return 하도록 solution 함수를 완성해보세요. 솔루션 #include #include #include // array_len은 배열 array의 길이입니다. int solution(int array[], size_t array_len) { int answer = 0; int tmp; for(int i = 0; i < array_len; i++) { tmp = array[i]; while(1) { if(tmp % 10 == 7) answer++; tmp /= 10; if(tmp == 0) break; } } return answer; } https://school.program.. 2023. 8. 15.
[프로그래머스/C언어] 문자열 뒤집기 문제 문자열 my_string과 정수 s, e가 매개변수로 주어질 때, my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요. 솔루션 #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. char* solution(const char* my_string, int s, int e) { // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. char* answer = (char*)malloc(strlen(my_string)+1); int i; for(i = 0; i < strlen(my_strin.. 2023. 8. 15.