바로 드가자~
문제
내정답
package codingTest;
import java.util.Scanner;
public class codingTest_2884 {
public static void main (String[] args) {
Scanner in = new Scanner(System.in);
int h = in.nextInt();
int m = in.nextInt();
in.close();
if(m<45) {
h--;
m = 60 + (m - 45);
if ( h < 0 ) {
h = 23;
}
System.out.println(h+" "+m);
}
else if(m>=45) {
m -= 45;
System.out.println(h+" "+m);
}
}
}
여기서 깨달아야 될것은 if문이 어디까지 영향을 미치느냐 이다.
if(m<45) 조건문이
if( h < 0) 여기까지만 영향을 가하도록
else if 전에 닫혀 있는것을 확인 해 볼 수 있다.
만약 else if 문 다음에 닫히게 된다면
m 값이 첫 번째 조건문 연산 후
m이 else if 를 타버리게 되기때문에
완전 생뚱맞은 값을 보내게 된다.
If문을 를 else if 다음에 닫았을때
10 / 10 데이터를 넣었을 때
디버그 첫번째 조건문을 빠져나와서
else if 문에 해당이되자 else if 조건문을
실행하고 있다. 이중 조건문에 대해서 제대로 알고간담!
To be continue...
'Codingtest' 카테고리의 다른 글
[코딩테스트] 버퍼 br.readLine() 오류 나는 이유 (0) | 2022.10.01 |
---|---|
[코딩테스트] 백준 2525번 오븐 시계 해설집 (Java) (0) | 2022.10.01 |
[코딩테스트] 백준 14681번 사분면 고르기 (Java) (0) | 2022.09.27 |
[코딩테스트] 백준 2753번 윤년 (Java) (0) | 2022.09.25 |
[코딩테스트] 백준 9498번 시험 성적 (Java) (0) | 2022.09.25 |