반응형
📖 문제
https://www.acmicpc.net/problem/3029
💡 풀이 방식
• 문자열
1. 첫째 줄에 입력받은 현재 시간을 세미콜론(:) 단위로 분리한다.
2. 둘째 줄에 입력받은 나트륨 던질 시간을 세미콜론(:) 단위로 분리한다.
3. 둘째 줄에서 입력받은 (시간-분-초)를 첫째 줄에서 입력받은 (시간-분-초)로 빼는 연산을 수행한다.
4. 연산 후, 정인이가 기다려야 하는 시간을 출력해야 할 때 시간/분/초 중 한 자리 수의 경우, 앞에 0을 붙여 출력하도록 한다. (두 자릿수면 그냥 출력한다.)
💥 유의사항
정인이는 적어도 1초를 기다린다고 했으므로,
1과 2에서 입력받은 시간이 같은 경우, 24:00:00이 나오도록 처리해 줘야 한다.
🔺 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] now = br.readLine().split(":");
int h1 = Integer.parseInt(now[0]);
int m1 = Integer.parseInt(now[1]);
int s1 = Integer.parseInt(now[2]);
String[] time = br.readLine().split(":");
int h2 = Integer.parseInt(time[0]);
int m2 = Integer.parseInt(time[1]);
int s2 = Integer.parseInt(time[2]);
// 적어도 1초를 기다려야 하므로, 시간이 같은 경우 처리 따로
if(h1 == h2 && m1 == m2 && s1 == s2) {
System.out.println("24:00:00");
return;
}
int[] answer = new int[3];
if(s2 < s1) {
answer[2] = s2+60 - s1;
m2--;
}
else {
answer[2] = s2 - s1;
}
if(m2 < m1) {
answer[1] = m2+60 - m1;
h2--;
}
else {
answer[1] = m2 - m1;
}
if(h2 < h1) {
answer[0] = h2+24 - h1;
}
else {
answer[0] = h2 - h1;
}
StringBuilder sb = new StringBuilder();
if(answer[0] < 10) {
sb.append("0");
}
sb.append(answer[0] + ":");
if(answer[1] < 10) {
sb.append("0");
}
sb.append(answer[1] + ":");
if(answer[2] < 10) {
sb.append("0");
}
sb.append(answer[2]);
System.out.println(sb.toString());
}
}
|
cs |
➕ 다른 풀이 방식
초간단 코드
[JAVA] 백준 3029 - 경고
문제 >창영마을에서 정인이의 반란은 실패로 끝났다. (3028번) 테러리스트로 변신한 정인이는 창영마을에 경고를 하려고 한다. 사실 정인이는 창영마을에서 제일 착한사람이다. 따라서, 사람들을
velog.io
💦 어려웠던 점
- 문제의 '적어도 1초를 기다린다'는 조건을 빠뜨려서 틀렸었다.
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
✔ 반례 참고
https://www.acmicpc.net/board/view/11341
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 20364번: 부동산 다툼 (0) | 2024.06.22 |
---|---|
[백준/JAVA] 16960번: 스위치와 램프 (0) | 2024.06.20 |
[백준/JAVA] 2668번: 숫자고르기 (0) | 2024.06.13 |
[백준/JAVA] 20125번: 쿠키의 신체 측정 (1) | 2024.06.13 |
[백준/JAVA] 10431번: 줄세우기 (0) | 2024.06.12 |