https://www.acmicpc.net/problem/2525
문제
- KOI 전자에서는 건강에 좋고 맛있는 훈제오리구이 요리를 간편하게 만드는 인공지능 오븐을 개발하려고 한다.
- 인공지능 오븐을 사용하는 방법은 적당한 양의 오리 훈제 재료를 인공지능 오븐에 넣으면 된다.
- 그러면 인공지능 오븐은 오븐구이가 끝나는 시간을 분 단위로 자동적으로 계산한다.
- 또한, KOI 전자의 인공지능 오븐 앞면에는 사용자에게 훈제오리구이 요리가 끝나는 시각을 알려 주는 디지털 시계가 있다.
- 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오.
입력
- 첫째 줄에는 현재 시각이 나온다.
- 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진다.
- 두 번째 줄에는 요리하는 데 필요한 시간 C (0 ≤ C ≤ 1,000)가 분 단위로 주어진다.
출력
- 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다.
- (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)
입출력 예제
풀이방식설계
1. 시와 분을 하나의 분으로 변환한다.
- min = (hour * 60) + time
2. 변환한 분에 요리하는데 걸리는 시간을 더한다.
3. 위 과정을 통해 나온 결과값을 다시 시와 분으로 변환한다.
4. 결과를 출력한다.
풀이과정
1. 시와 분을 하나의 분으로 변환한다.
- min = (hour * 60) + time
2. 변환한 분에 요리하는데 걸리는 시간을 더한다.
- min += time
3. min을 60으로 나눠서 시간을 구한다. 단, 24시가 되었을 때에 시간이 0이 되어야 하므로 24로 나눈 나머지를 출력하도록 한다.
- hour = (min / 60) % 24
- hour가 24보다 작다면 본인의 값을 그대로 반환한다.
4. min을 60으로 나눈 나머지를 구해서 분을 구한다.
- min = min % 60
- 60으로 나눈 나머지를 구하면 60보다 작은 값이 출력되는 것이기에 우리가 원하는 결과값이 출력된다.
5. 결과를 출력한다.
답안소스
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int hour, min, time;
public void Cook(int hour, int min, int time) {
min = (hour * 60) + min;
min += time;
hour = (min / 60) % 24;
min = min % 60;
System.out.println(hour + " " + min);
}
public static void main(String[] args) throws IOException {
Main oven = new Main();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
hour = Integer.parseInt(st.nextToken());
min = Integer.parseInt(st.nextToken());
st = new StringTokenizer(br.readLine());
time = Integer.parseInt(st.nextToken());
oven.Cook(hour, min, time);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준 알고리즘 자바] 2558: A+B - 2 (0) | 2023.05.10 |
---|---|
[백준 알고리즘 자바] 2480 : 주사위 세개 (0) | 2023.03.08 |
[백준 알고리즘 자바] 15666 : N과 M (12) (0) | 2023.03.03 |
[백준 알고리즘 자바] 15665 : N과 M (11) (0) | 2023.02.24 |
[백준 알고리즘 자바] 15664 : N과 M (10) (0) | 2023.02.22 |