반응형
문제
창용이는 여름을 맞이하여 ‘정창용’ 이름이 쓰인 한정판 섬머 에디션 시계를 구입했다. 왠지 오늘은 001도 가고 싶지 않고 시계를 가지고 놀고만 싶다. 우린 방에 있는 창용이가 시계를 가지고 뭘 하는지 궁금하기만 하다. 창용이는 시계의 건전지를 분리했기 때문에 시계는 시간이 흐르지 않는다.
창용이는 앞으로 시계를 돌리기도 하고 뒤로 시계를 돌리기도 한다. 입력으로는 초기 현재 시간이 주어지고 q개의 쿼리가 주어진다.
한 쿼리는 T로 시작한다. (1 ≤ T ≤ 3, 0 ≤ c ≤ 10,000,000)
- T가 1일 때는 c를 입력으로 받아와서, 시계를 앞으로 c초 돌린다.
- T가 2일 때는 c를 입력으로 받아와서, 시계를 뒤로 c초 돌린다.
- T가 3일 때는 창용이가 조작한 시계의 상황을 출력한다.
문제풀이
#1.모듈 사용
from datetime import datetime, timedelta
import sys
input = sys.stdin.readline
h,m,s = list(map(int,input().split()))
t=datetime(2000,1,1,h,m,s)
for _ in range(int(input())):
arr=list(map(int,input().split()))
if arr[0]==1:
t+=timedelta(seconds=arr[1])
elif arr[0]==2:
t-=timedelta(seconds=arr[1])
else:
print(t.hour,t.minute,t.second)
#2.모듈 사용x
import sys
h,m,s = map(int,input().split())
q =int(input())
for i in range(q):
try:
T,c = map(int,sys.stdin.readline().split())
if(T==1):
s += c%60
c = c//60
if(s>=60):
m +=1
s -=60
m += c%60
c = c//60
if(m>=60):
h+=1
m -=60
h += c%24
if(h>=24):
h -=24
elif(T==2):
s -= c%60
c= c//60
if(s<0):
m -=1
s +=60
m -= c%60
c = c//60
if(m<0):
h -=1
m +=60
h -= c%24
if(h<0):
h +=24
except:
print(h ,m ,s)
- 모듈 사용 버전과 모듈 비사용 버전으로 총 2가지 풀이법이다.
'프로그래밍 > 백준' 카테고리의 다른 글
[백준알고리즘] 백준 25024 파이썬 - 시간과 날짜 (0) | 2022.10.08 |
---|---|
[백준알고리즘] 백준 14913 파이썬 - 등차수열에서 항 번호 찾기 (1) | 2022.10.08 |
[백준알고리즘] 백준 브론즈 4 - 풀이 모음 (0) | 2022.10.07 |
[백준알고리즘] 백준 14623 파이썬 (0) | 2022.10.06 |
[백준알고리즘] 백준 2530번 파이썬 (0) | 2022.10.05 |