본문 바로가기
  • 밥 하루하루

C언어35

[프로그래머스/C언어] 가운데 글자 가져오기 #include #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. char* solution(const char* s) { // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요. char* answer; answer = (char*)malloc(sizeof(char)*2); int len = strlen(s); // 길이 찾기 if(len % 2 == 0){ //짝수인 경우 answer[0] = s[len/2 - 1]; answer[1] = s[len/2]; answer[2] = NULL; // 배열 마지막에 NULL을 넣어줘야 함. }else{ answer.. 2023. 3. 17.
[프로그래머스/C언어] 직사각형 별찍기 #include int main(void) { int a; int b; scanf("%d %d", &a, &b); for(int i = 0; i < b; i++){ for(int j = 0; j < a; j++){ printf("*"); } printf("\n"); } return 0; } - 2중 for문을 돌려줘야함. - 3줄에 5개씩 별을 찍어야 하기 때문에, 입력받는 값 a, b까지 for문을 돌려주면 됨. 2023. 3. 17.
[프로그래머스/C언어] 내적 #include #include #include // a_len은 배열 a의 길이입니다. // b_len은 배열 b의 길이입니다. int solution(int a[], size_t a_len, int b[], size_t b_len) { int answer = 0; for(int i = 0; i < a_len; i++){ answer = answer + a[i]*b[i]; } return answer; } - 각 배열에 들어간 값들 for문으로 해서 곱함. 2023. 3. 17.
[프로그래머스/C언어] 배열의 평균값 #include #include #include // numbers_len은 배열 numbers의 길이입니다. double solution(int numbers[], size_t numbers_len) { double answer = 0; double sum = 0; for(int i = 0; i < numbers_len; i++){ sum = sum + numbers[i]; } answer = sum / numbers_len; return answer; } - for문으로 배열에 들어간 값을 다 더하고, 길이 만큼 나누면 됨. 2023. 3. 17.
[프로그래머스/C언어] 하샤드 수 #include #include #include bool solution(int x) { bool answer = true; int temp = 0; int value = 0; int sum = 0; value = x; while(1){ temp = x % 10; sum = sum + temp; x = x / 10; if(x == 0){ break; } } if(value % sum != 0){ answer = false; } return answer; } - 나머지를 통해 각자리 수를 구한 다음 더함. - 더한 값을 주어진 변수로 나눴을 때 0인지를 판단하고 true, false를 return함. 2023. 3. 17.
[프로그래머스/C언어] 나머지가 1이 되는 수 찾기 #include #include #include int solution(int n) { int answer = 0; for(int i = 2; i < n; i++){ if(n % i == 1){ answer = i; break; } } return answer; } - 변수 n을 나눴을때 나머지가 1인 값이 어떤값인지 확인하기 위해서 작은수 부터 for문을 돌림. - n이 3이상이기 때문에 2부터 돌림. - 작은수 부터 돌려서 1이 나오면 그 값을 return함. 2023. 3. 17.
[프로그래머스/C언어] 자연수 뒤집어 배열로 만들기 #include #include #include #include int* solution(long long n) { // 리턴할 값은 메모리를 동적 할당해주세요. int* answer = (int*)malloc(sizeof(int)*11); long long value = n; int cnt = 1; int num; value = n; while(1){ value = value / 10; if(value == 0){ for(int i = 0; i < cnt; i++){ num = n % 10; answer[i] = num; n = n / 10; } break; } cnt++; } return answer; } - 변수의 자리 수를 구함. - for문 돌리면서, % 나머지를 구해서 처음부터 넣어줌. - %.. 2023. 3. 16.
[프로그래머스/C언어] 문자열 다루기 기본 #include #include #include #include // 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요. bool solution(const char* s) { bool answer = true; int len, i; len = strlen(s); if(len == 4 || len == 6){ for(i = 0; i '9'){ answer = false; break; } } }else{ answer = false; } return answer; } - s의 길이가 4 또는 6인지 확인하고, 아니면 false임. - 그리고 s 문자열에 대소문자가 들어갔는지 확인을 ASCII에서 0보.. 2023. 3. 16.
[프로그래머스/C언어] 약수의 개수와 덧셈 문제설명 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 2022. 5. 10.