바로 드가자~


 

 

 

 

 

 

문제

 

내정답
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...

복사했습니다!