본문 바로가기

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

[프로그래머스/C언어] 숨어있는 숫자의 덧셈 (2) 문제 문자열 my_string이 매개변수로 주어집니다. my_string은 소문자, 대문자, 자연수로만 구성되어있습니다. my_string안의 자연수들의 합을 return하도록 solution 함수를 완성해주세요. 솔루션 #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. int solution(const char* my_string) { int answer = 0; int n; int ten = 1; for(int i = strlen(my_string); i >= 0; i--){ if(my_string[i] >= '0' && my_string[i] 2023. 8. 15.
[프로그래머스/C언어] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 문제 문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요. 솔루션 #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. char* solution(const char* myString, const char* pat) { // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. char* answer = (char*)malloc(strlen(myString)); int i, j; for(i = strlen(myString) - 1; i >.. 2023. 8. 15.
[프로그래머스/C언어] 문자열이 몇 번 등장하는지 세기 문제 문자열 myString과 pat이 주어집니다. myString에서 pat이 등장하는 횟수를 return 하는 solution 함수를 완성해 주세요. 솔루션 #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. int solution(const char* myString, const char* pat) { int answer = 0; //printf("%s", myString+1); for(int i = strlen(myString) - 1; i >= 0; i-- ) if(strncmp(myString+i, pat, strlen(pat)) == 0) answer++; return answer; } https.. 2023. 8. 15.
[프로그래머스/C언어] 1로 만들기 문제 정수가 있을 때, 짝수라면 반으로 나누고, 홀수라면 1을 뺀 뒤 반으로 나누면, 마지막엔 1이 됩니다. 예를 들어 10이 있다면 다음과 같은 과정으로 1이 됩니다. 10 / 2 = 5 (5 - 1) / 2 = 4 4 / 2 = 2 2 / 2 = 1 위와 같이 4번의 나누기 연산으로 1이 되었습니다. 정수들이 담긴 리스트 num_list가 주어질 때, num_list의 모든 원소를 1로 만들기 위해서 필요한 나누기 연산의 횟수를 return하도록 solution 함수를 완성해주세요. 솔루션 #include #include #include // num_list_len은 배열 num_list의 길이입니다. int solution(int num_list[], size_t num_list_len) { int.. 2023. 8. 15.
[프로그래머스/C언어] 빈 배열에 추가, 삭제하기 문제 아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 길이가 같은 정수 배열 arr과 boolean 배열 flag가 매개변수로 주어질 때, flag를 차례대로 순회하며 flag[i]가 true라면 X의 뒤에 arr[i]를 arr[i] × 2 번 추가하고, flag[i]가 false라면 X에서 마지막 arr[i]개의 원소를 제거한 뒤 X를 return 하는 solution 함수를 작성해 주세요. 솔루션 #include #include #include #include // arr_len은 배열 arr의 길이입니다. // flag_len은 배열 flag의 길이입니다. int* solution(int arr[], size_t arr_len, bool flag[], size_t flag_len) { // re.. 2023. 8. 15.
[프로그래머스/C언어] k의 개수 문제 1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i, j, k가 매개변수로 주어질 때, i부터 j까지 k가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요. 솔루션 #include #include #include int solution(int i, int j, int k) { int answer = 0; char* n; int num; for(int x = i; x 2023. 8. 15.
[프로그래머스/C언어] 가까운 수 문제 정수 배열 array와 정수 n이 매개변수로 주어질 때, array에 들어있는 정수 중 n과 가장 가까운 수를 return 하도록 solution 함수를 완성해주세요. 솔루션 #include #include #include // array_len은 배열 array의 길이입니다. int solution(int array[], size_t array_len, int n) { int answer = 0; int dif_min = abs(array[0] - n); int min; for(int i = 0; i < array_len; i++) { if(abs(n - array[i]) < dif_min){ dif_min = abs(n - array[i]); min = array[i]; } if(abs(n - .. 2023. 8. 14.
[프로그래머스/C언어] 이차원 배열 대각선 순회하기 문제 2차원 정수 배열 board와 정수 k가 주어집니다. i + j 2023. 8. 14.
[프로그래머스/C언어] A로 B 만들기 문제 문자열 before와 after가 매개변수로 주어질 때, before의 순서를 바꾸어 after를 만들 수 있으면 1을, 만들 수 없으면 0을 return 하도록 solution 함수를 완성해보세요. 솔루션 #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. int solution(const char* before, const char* after) { int answer = 1; int* alp[25] ={0, }; int* alp2[25] ={0, }; for(int i = 0; i < strlen(before); i++) alp[before[i]-97]++; for(int i = 0; i < str.. 2023. 8. 14.
[프로그래머스/C언어] 2차원으로 만들기 문제 정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요. num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다. 솔루션 #include #include #include // num_list_len은 배열 num_list의 길이입니다. int** solution(int num_list[], size_t num_list_len, int n) { // return 값은 malloc 등 동적 할.. 2023. 8. 14.