문제
https://www.acmicpc.net/problem/12840
문제
창용이는 여름을 맞이하여 ‘정창용’ 이름이 쓰인 한정판 섬머 에디션 시계를 구입했다. 왠지 오늘은 001도 가고 싶지 않고 시계를 가지고 놀고만 싶다. 우린 방에 있는 창용이가 시계를 가지고 뭘 하는지 궁금하기만 하다. 창용이는 시계의 건전지를 분리했기 때문에 시계는 시간이 흐르지 않는다.
창용이는 앞으로 시계를 돌리기도 하고 뒤로 시계를 돌리기도 한다. 입력으로는 초기 현재 시간이 주어지고 q개의 쿼리가 주어진다.
한 쿼리는 T로 시작한다. (1 ≤ T ≤ 3, 0 ≤ c ≤ 10,000,000)
- T가 1일 때는 c를 입력으로 받아와서, 시계를 앞으로 c초 돌린다.
- T가 2일 때는 c를 입력으로 받아와서, 시계를 뒤로 c초 돌린다.
- T가 3일 때는 창용이가 조작한 시계의 상황을 출력한다.
입력
현재 시간이 h m s 로 주어진다. (0 ≤ h ≤ 23, 0 ≤ m ≤ 59, 0 ≤ s ≤ 59)
그 다음 쿼리의 개수 q가 주어진다. (1 ≤ q ≤ 100,000)
다음 q개의 줄에는 쿼리가 주어진다. 쿼리의 형태는 위와 같다.
출력
쿼리의 T가 3 일때, 창용이가 이리 저리 바꿔 놓은 시계가 가리키는 시간을
h’ m’ s’ 의 형태로 출력한다. T가 3인 쿼리는 하나는 꼭 주어진다.
Algorithm
1. 시, 분, 초로 나뉘어있는 것을 전부 초로 환산해서 계산을 쉽게 한다.
2. T와 같이 입력받는 c는 입력을 안 받는 경우도 있기 때문에 list 형태로 입력받아 Value Error를 방지한다.
Code
import sys
input = sys.stdin.readline
h, m, s = map(int,input().split())
time = h*3600 + m*60 + s
q = int(input())
for i in range(q):
lst = list(map(int,input().split()))
T = lst [0]
if T == 1:
time += lst[1]
time %= 86400
elif T == 2:
time -= lst[1]
time %= 86400
if T == 3:
temp = time
h = temp // 3600
temp %= 3600
m = temp // 60
s = temp % 60
print(h, m, s)
'Koala - 18기 > 코딩테스트 기초 스터디' 카테고리의 다른 글
[백준/Python] 11575 : Affine Cipher (0) | 2025.05.11 |
---|---|
[백준 / Python] 2566 : 최댓값 (0) | 2025.05.04 |
[백준/Python] 1316 : 그룹 단어 체커 (0) | 2025.04.13 |
[백준/Python] 3059 : 등장하지 않는 문자의 합 (0) | 2025.04.06 |
[백준/Python] 5218 : 알파벳 거리 (0) | 2025.04.05 |