jihan1008   4년 전

제 생각에는 맞게 짠 거 같은데 계속 60%에서 틀렸다고 뜨네요 ㅠㅠ

반례 좀 찾아주실 수 있을까요... 제발 부탁드립니다 ㅠㅠ

제 컴퓨터에서는 다 잘 나오고 반례도 없는 거 같은데 제 코드를 다른 사람들에게 줘서 컴파일해서 돌려보면 이상하게 나온다고 합니다 

가령 5를 넣으면 저는 1이 잘 나오는데 다른 분은 7이 나온다네요 ㅠㅠ

도대체 문제가 무엇일까요 ㅠㅠㅠㅠㅠㅠㅠ

도와주세요 ㅠㅠ

nuclear852   4년 전

반례: 5

nuclear852   4년 전

한 자리 숫자 넣을 때 답이 이상하네 지환아

balupzillot   3년 전

저도 허접하지만... 코드에서 버그를 말씀드리면요

1) 입력받은 정수값을 배열로 변환하는 부분을 아래와 같이 해보심이..

아래코드도 좀 군더더기가 있지만 그냥 참고만 하시면 됩니다^^;;

int n=0, res=0;

    while(inData){
        res = inData%10;
        inData = inData/10;
        inArr[n] = res;
        n++;
    }

    if(!n){
        inArr[0] = 0;
        n =1;
    }


2) k와 max를 비교해서 판정하는 부분에서

예를들어) 6666111 이면 k=4, max=4 라서,,, 결과가 2가 되지만

실제로는 값이 3이지요.


k>= max 일 경우에,,, k를 짝/홀수에 따라 연산한 결과 k가

count 배열에 있는 (6,9번째는 제외) count값과 비교하는게 필요할 것 같습니다.


    if(k>=max)
    {
        if(k%2 == 0) { k = k/2;}
        else { k = k/2 + 1; }

        result = k;
        for(i=0; i<9; i++){
                if(i==6 || i==9)
                    continue;
                if(count[i] > k)
                    result = count[i];
        }
    }

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