📓 Study/Coding Test

[BOJ] 2844 | 알람시계

seongit 2021. 7. 18. 13:01

 

import java.util.Scanner;
public class Main {
	static Scanner sc = new Scanner (System.in);
	public static void main(String[] args) {
		
		int h = sc.nextInt();
		int m = sc.nextInt();
		
		
		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));
		}
		
		
	}
}

 

배운점

✔ if문 안을 m>45로 했을 때는 오답이라고 나오는데, m<45로 변경하니까 정답이라고 변경되었다. 안의 코드는 동일한데..! 

✔ 후위연산자 활용하기. 위의 경우 입력한 분이 45보다 작을 경우 ( ex. 15분 ) 무조건 입력한 시간에서 빼야하기 때문에 h--;를 사용했다. 그리고 h-- 되었기 때문에 60-(45-m)이 가능할 수 있었다. 만약 h가 0보다 작을 경우 ( ex. 0 - 1 ) 에는 23시가 출력 되도록 다시 조건식을 달아줘야 했다. 

✔ 콘솔창에 맞는 값이 찍혔어도, 문제에서 원하는 형식 ( 시 + " " + 분 )을 잘 지켜서 제출하자.