반응형
https://www.acmicpc.net/problem/2530
- 문제
- 문제 풀이
백준 2530번 인공지능 시계는 브론즈 4 난이도의 수학 문제이다. 이 문제에서는 현재 시각이 A시 B분 C초의 형태로 주어진다. 그리고 요리하는 데 필요한 시간 D가 초 단위로 주어진다. 이때, 요리가 끝났을 때의 시간을 구하면 된다. 단, 23시 59분 59초에서 1초가 지나면 0시 0분 0초가 된다.
이 문제는 나눗셈과 나머지를 이용해서 간단하게 풀 수 있다.
우선 요리하는 데 필요한 시간 D초를 C에 더한다. 그러면 C + D초가 된다. 이 값이 60초 이상이 되면 B에 그만큼 더해줘야 한다. 예를 들어서, 75초가 되면 1분을 B에 더해줘야 한다는 것이다. 즉, C = (C + D) % 60이 되고 B = B + (C + D)/60이 된다는 것이다.
B분에서 A시로 넘어갈 때도 마찬가지이다. B분이 60분을 넘어가면 그만큼의 시를 A에 더해줘야 한다. 따라서, A = A + (B / 60)이 되고 B = B % 60이 된다. B나 C가 60 미만일 때는 60으로 나눠도 0이기 때문에 걱정할 필요는 없다.
자세한 코드는 아래에 있는 코드를 참고하면 되겠다.
- 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
// A, B, C, D 입력 받기
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int c = Integer.parseInt(st.nextToken());
int d = Integer.parseInt(br.readLine());
c += d;
b += (c/60);
c = c % 60;
a += (b/60);
b = b % 60;
a = a % 24; //24시가 넘어가면 0시가 되야하므로 24로 나눈 나머지 구하기
System.out.print(a + " " + b + " " + c); //종료되는 시간 출력
}
}
반응형
'백준' 카테고리의 다른 글
[백준] 1292번 : 쉽게 푸는 문제 – JAVA [자바] (2) | 2022.09.12 |
---|---|
[백준] 2420번 : 사파리월드 – JAVA [자바] (0) | 2022.09.07 |
[백준] 1032번 : 명령 프롬프트 – JAVA [자바] (0) | 2022.09.05 |
[백준] 2914번 : 저작권 – JAVA [자바] (0) | 2022.08.17 |
[백준] 1259번 : 팰린드롬수 – JAVA [자바] (0) | 2022.08.16 |
댓글