C언어/문제은행

[10주차] 숫자 뒤집기

슈슈버거 2023. 7. 26. 15:53

문제


내가 작성한 코드

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

void reverse(char input[]){
    int len = strlen(input);

    for(int i = 0; i<len/2; i++){
        char tmp = input[i];
        input[i] = input[len-i-1];
        input[len-i-1] = tmp;
    }
}

int main() {
    char input[100];
    scanf("%s", input);

    int pm = atoi(input);

    reverse(input);
    int result = atoi(input);

    if(pm < 0){
        result *= -1;
    }

    printf("%d", result);

    return 0;
}

왜? 테스트 케이스 2개를 여전히 통과 못하는지 모르겠다

 

일단 배열에 한 숫자씩 저장한 다음에 pm을 통해 음수, 양수 여부를 파악하게 해줬다

 

그런다음 reverse라는 함수를 통해 뒤집은 문자열을 atoi를 통해 정수로 변환하게 해주어서

 

123000처럼 끝이 0이어도 321로 정상적으로 출력되고

-423을 넣어도 -324가 나오는데

00을 넣어도 0이 나오는데

 

뭐가 틀린거지

 

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

void reverse(char input[]){
    int len = strlen(input);

    for(int i = 0; i<len/2; i++){
        char tmp = input[i];
        input[i] = input[len-i-1];
        input[len-i-1] = tmp;
    }
}

int main() {
    char input[100];
    scanf("%s", input);

    reverse(input);
    int result = atoi(input);

    printf("%d", result);

    return 0;
}

오히려 이것처럼 음수 판단 안하게 하니까 테스트케이스 1개만 통과못하는 경우로 줄었다.

 

음수를 넣어도 양수로 나와야 하는건가... 끄응

이런 거에 대해 조금 더 상세히 설명이 되어있었다면 좋을텐데 문제에 ㅠ

 

그래도 여전히 왜 1개를 통과못하는지 모르겠다.

엄청나게 큰 수가 나왔을 때도 생각을 해야 되는건가

 

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

void reverse(char input[]){
    int len = strlen(input);

    for(int i = 0; i<len/2; i++){
        char tmp = input[i];
        input[i] = input[len-i-1];
        input[len-i-1] = tmp;
    }
}

int main() {
    char input[10000];
    scanf("%s", input);

    reverse(input);
    long long int result = atoll(input);

    printf("%lld", result);

    return 0;
}

 

라고 하기엔 long long int를 썼음에도 통과 못한다.... 어디서 틀린거냣

진짜 모르게따... 미해결 문제 

'C언어 > 문제은행' 카테고리의 다른 글

[10주차] 문자열 딕셔너리  (0) 2023.07.26
[10주차] 예비군 파이팅  (0) 2023.07.26
[10주차] 문자열 배열  (0) 2023.07.19
[8주차] 행렬 덧셈, 뺄셈  (0) 2023.07.17
[8주차] 90도 회전  (0) 2023.07.17