728x90

 

입력, 출력값 맞게 넣었고 같은 값이고 로직도 맞는 것 같은데 틀리다고 나온다면...?

왜 틀렸는지 몰라서 난감할 것이다

 

이럴 때 한가지 해볼만한 추천 방법이 있다

구글링해서 해당 문제를 푼 다른 분들의 코드를 보고 이해한 후,

코드 로직에서 비슷한 부분이 꽤 있을 것이다. 

해당 부분을 하나씩 바꿔서 정답 처리를 확인하면서 로직이나 코드 맞는지 틀린지 확인 가능해지면서

뭐가 틀리고 맞는지 확인이 가능하다.

 

 

예를들면,

내가 풀어낸 처음 코드는 아래와 같았는데

로직을 여러번 검산해봐도 맞는데 왜 아니라고 하는건지 입출력 값 다 확인해봐도 이해가지 않았다

if((min-45) < 0 ){
    hour = hour-1;
    min = min - 45 + 60;
    if(hour < 0){
       hour = hour + 24;
    }
}
System.out.println(hour+" "+min);

 

 

다른 사람들의 코드 방식 찾아보니 아래와 같았는데

h=23나 M<45 같은 코드들이 좀 달라서

혹시 내가 놓친 다른 경우의 수가 있나 한 줄씩 대입해서 보니 다 정답 처리 되는 것이다

모든 라인을 하나 씩 해보니 그제서야 로직은 틀린게 없고

else로 첫 if문 조건이 아닌 경우의 수를 주어야하는 걸 깜빡한 것을 발견할 수 있었다

if(M < 45) {
    H--;
    M = 60 - (45 - M);
    if(H < 0) {
        H = 23;
    }
    System.out.println(H + " " + M);
}
else {
    System.out.println(H + " " + (M - 45));
}

 

 

 

 

728x90
반응형

+ Recent posts