IT/BaekJoon

[백준/JAVA] 2525 오븐 시계

Buang 2023. 2. 26. 22:53
반응형

1. 문제

 

 

2525번: 오븐 시계

첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)

www.acmicpc.net


2. 풀이

 

입력된 시간과 분에

요리시간을 더해주면 되는 문제다.

 

여기서 고려해야 할 점은 총 3가지다.

 

1) 입력된 분과 요로 소요시간을 합쳤을 때 60분을 넘는가?

2) 60분을 넘는다면 

2-1) 시간이 23시간을 넘는가?

2-2) 시간이 23을 넘지 않는다면

 

import java.util.Scanner;
 
public class Main {
	public static void main(String[] args) {
    
    	Scanner scan = new Scanner(System.in);
		
		int H = scan.nextInt(); // 시간
		int M = scan.nextInt(); // 분
		int time = scan.nextInt(); //소요시간
		
		scan.close();
		
		int totalMinutes = M + time; //입력된 분과 요리 소요시간을 합친 시간
		
		
		if((totalMinutes) < 60) { //입력된 분과, 요리 소요시간 분이 60분 이하인 경우
			System.out.println(H + " " + totalMinutes);
		}
		else { // 입력된 분과, 요리하는 데 필요한 분이 60분 이상인 경우
			int restCount = totalMinutes % 60; // 분 부분을 나타내기 위해
			int quotient = (totalMinutes / 60); //분의 크기만큼 시간을 늘려주는 변수
			//185분이 totalMinutes라면 시간 부분에 +3이 추가되어야 한다. 이 3이 quotient에 저장된다.
			
			
			
			for (int i=1; i <= quotient; i++){ //분이 60분 이상인 경우 60분 단위로 시간이 1씩 증가하도록 한다.
				H++;  							
			}	
			if (H > 23){ 
				int hCount = H - 24; //시간은 0~23까지 표시가 가능하니까, 시간이 24인 경우는 24로 빼주도록 한다.
				System.out.println(hCount + " " + restCount);
			}
			else { //시간이 23시 이하라면 
				System.out.println(H + " " + restCount);
			}
			
		}
			

	}
}

 

 

 

내가 위에 작성한 건 

돌악서 가는 방식이었다.

 

찾아보니 더 쉬운 방법도 있었다.

 

 

반응형