chubichubi   9년 전

이제 알고리즘을 풀기 시작한 초보 코더입니다. ^^;;


예외 케이스가 어디에서 잘못된것인지 찾기 어려워서 질문올립니다. ! ㅠ.ㅠ

혹시 힌트가 될만한 부분이라도 언급해주시면 감사드리겠습니다.ㅠ.ㅠ

yukariko   9년 전

제가푼 풀이를 봐도 그렇고

다른사람이 푼 풀이를 봐도 그런데

010 같은 입력이 들어오는것 같습니다.

0*1 0  으로 YES인데 숫자로받게되면 NO가 되죠.

그리고 pow 함수는 소숫점 오차로인해 의도치않은 값이 들어갈 수 있습니다.

tmp=10;

for(i=1;i<cnt;i++)
{
~~

tmp*=10;
}

이렇게 처리하는것이 좋죠.

어쨌든 제가 여러번 테스트해봤는데 문자열로 처리하는것을 추천합니다.

h0ngjun7   9년 전

ㅜㅜ... 전 문제를 맞췄는데 틀린 걸 못찾겠더라구요ㅠㅠ

역시나 저도 처음에 문자열로 입력받아서 나눠서 처리했어요.

010 같은 케이스를 처리해야하나봐요.

baekjoon   9년 전

12001을 입력으로 넣어보니 YES가 나와야 하는데 NO를 출력합니다

pichulia   9년 전

101 넣으면 NO인데 YES가 나오네요ㅋ

N%tmp 를 하면서 

앞자리수가 0인 경우가 사라져버리네요

그래서 0*1 = 0 인데

1 만 남게되고 

1 == 1이 되버립니다.

if(N%tmp<tmp/10)res2=0; 구문을 추가해주면 맞을거에요 아마

....백준성님보다 3분 늦었다ㅠㅠ

chubichubi   9년 전

우와 답변들 빠르게 해주셔서.. 틀린 부분 찾고 고쳤네요 ! 

답변해주신 분들 모두 감사드립니다 ^^! 

yukariko   9년 전

와 제생각이짧은것이었군요.. ㅠㅠ

언제쯤 잘 하게 될까요 :(

댓글을 작성하려면 로그인해야 합니다.