[문제해결] 째능교육 도움 요청드립니다.

  • gloryof11
    gloryof11

    하... 창피하네요;
    이런 버그도 만들 수 가 있는거군요;;
    지금까지 한번도 안한 실수를 이렇게 하게 되네요...
    알고스팟을 통해서 내공이 많이 쌓이는 느낌입니다.
    도움주셔서 감사합니다!
    좋은 하루 보내세요!

    (코드는 제거하였습니다.)

    안녕하세요.

    어떤 예외케이스 때문에 오답이 나오는지 못찾고 있습니다..

    고수님들의 도움 부탁드립니다..

    (저는 잘 안보이네요;;)

    째능 교육

    #include <stdio.h>
    
    char TC;
    ...
    
    int main(void)
    {
        scanf("%d",&TC);
    
    ...
    
        for(int i=0;i<TC;i++)
        {
    ...
    

    10년 전
7개의 댓글이 있습니다.
  • gudbooy
    gudbooy

    이런방식으로 풀면 잘못된 값이 들어왔을때도 맞을 수 있지 않을까요?
    twwo + zeroo = two 인풋에도 YES를 출력하네요.


    10년 전 link
  • gloryof11
    gloryof11

    A operation B = C 에서 A,B 는 정확히 들어온다고 가정이 되어 있어서 처리를 하지 않았습니다. 처리를 해야하는 건지 확인을 해봐야 겠네요...


    10년 전 link
  • gudbooy
    gudbooy

    잘못된 값이 들어올수도 있다고 input란에 적혀있네요~


    10년 전 link
  • gloryof11
    gloryof11

    문제를 보면 아래와 같이 되어 있습니다... 제가 너무 문제를 있는 그대로 가정하는 것이 문제일까요?;;;

    A와 B를 구성하는 영문 단어는 0 이상 10 이하의 수를 나타내는 것으로써 순서대로 zero, one, two, three, four, five, six, seven, eight, nine, ten 중 하나가 항상 올바르게 주어진다.


    10년 전 link
  • hyunhwan
    hyunhwan

    gloryof11 // 언급하신데로 A, B는 올바르게 들어오는 것이 맞습니다.


    10년 전 link
  • hyunhwan
    hyunhwan

    확인 결과 구현 부분은 크게 문제가 없지만, 큰 문제가 있는 부분이 하나 있습니다.

    테스트 케이스를 입력하는 변수를 char형으로 선언하셨는데, 이 경우 가령 1,000개의 테스트 케이스가 들어온다 하면 overflow가 발생 하여 올바르게 처리 되지 않을 것입니다.

    따라서 TC를 char가 아니라 int로 바꿔 보시길 바랍니다.


    10년 전 link
  • gloryof11
    gloryof11

    LIBe 님 정말 감사합니다!
    (프로그래머는 정말 꼼꼼해야 함을 다시한번 깨닫게 되었습니다;)


    10년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.