본문 바로가기

JAVA/연습노트

[백준-자바] 2525 오븐

문제

 

훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오.

 

입력

 

첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진다. 두 번째 줄에는 요리하는 데 필요한 시간 C (0 ≤ C ≤ 1,000)가 분 단위로 주어진다.

 

출력

 

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

 

 

정답 :

 

import java.util.Scanner;

 

public class Test333 {

 

public static void main(String[] args){

 

Scanner sc = new Scanner(System.in);

 

int h, m, mm;

h = sc.nextInt();

m = sc.nextInt();

mm = sc.nextInt();

 

h += mm / 60; // 요리시간이 60분 이상이면 넘는 만큼 h에 더하고

m += mm % 60; // 남은 분을 m에 더한다.

 

if(m >= 60) {

h += 1; // m이 60 이상이면 h 를 한시간 더하고

m -= 60; // m은 60을 - 한다.

}

 

if(h >= 24) { // h가 24시 이상이면 24를 빼준다 (24시는 0시로 표기하기 때문)

h -= 24;

}

System.out.println(h + " " + m);

}

}

 

 

나의 풀이 : 

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

int A = sc.nextInt();

int B = sc.nextInt();

int C = sc.nextInt();

if(B+C>=60) {

A += 1;

B = (B+C)-60;

if (B>=60) {

A += (B/60);

if (A>23 || A==24) {

A = B/60;

}

B = B%60;

} System.out.println(A+" "+B);

}else {

System.out.println(A+" "+(B+C));

}

}

}

 

 

 

 

틀린 이유 : 

 

오래 고민했는데 생각보다 간단하게 풀 수 있었다

시간 관련 문제를 많이 풀어봐야겠다

60분 이상이면 넘는 만큼 h에 더하고 남은 분을 m에 더하면 된다

m이 60 이상이면 h에 1을 더하고

h가 24가 넘어가면 24를 빼주면 된다

 

시간 지나서 다시 한번 풀어볼 문제

'JAVA > 연습노트' 카테고리의 다른 글

[백준-자바] 10813 공 바꿔넣기  (2) 2024.03.24
[백준-자바] 10871 배열 X보다 작은 수  (0) 2024.03.24
아스키 코드 숫자 변환  (0) 2024.03.20
바구니 개수 문제  (0) 2024.03.20
놀이기구 신장 문제  (0) 2024.03.20