728x90
728x90
반응형
풀이 과정
1. 현재 시간을 hh, mm으로 받고 정수형으로 저장하였다.
2. 영역의 값을 num 배열에 받고, 영역에 접근하였는지 안 했는지 확인하기 위하여 크기가 6인 bool 형식의 배열을 "seal"로 초기화해주었다.
3. 이벤트 수(L) 만큼 반복문을 돌린다.
3-1. 만약 입력받은 s.T 가 1분이 지났다면 반복문을 종료시켰다.
3-2. 입력받은 명령어가 "^" 이면 현재 시간이 가리키는 영역을 False로 변경해준다.
3-3. 입력받은 명령어가 시간이 포함될 경우
3-3-1. 명령어에 "MIN" 이 포함될 경우 : 현재 분(mm)과 입력받은 분 값의 합이 60보다 작으면 현재 분에 입력받은 분 값을 더해준다. 만약 60보다 크다면 현재 시간(hh)을 1 증가시키고 12로 나눈 나머지 값을 저장시키고, 현재 분(mm) 값도 입력받은 분 값을 더해서 60으로 나눈 나머지 값을 저장시킨다.
3-3-2. 명령어에 "HOUT"이 포함될 경우 : 현재 시간(hh)에 단순히 입력받은 시간을 더해서 12로 나눈 나머지 값을 저장시켰다.
4. 만약 영역이 True인 인덱스의 num 값을 더해준다.
5. ans을 출력한다. 만약 100보다 크면 100을 출력한다.
풀이 코드
hh,mm = input().split(':') ; hh,mm = int(hh),int(mm)
num,seal = list(map(int,input().split())),[True for _ in range(6)]
for _ in range(int(input())) :
s,op = input().split()
if float(s) >= 60 : break
if op == "^" : seal[hh//2] = False
else :
if "MIN" in op :
op = int(op.replace("MIN",""))
if op + mm < 60 : mm += op
else : hh ,mm = (hh +1) % 12, (mm+op) % 60
else : hh = (hh + int(op.replace("HOUR",""))) % 12
if True not in seal :
break
ans = sum(num[i] for i in range(6) if seal[i])
print(ans if ans <= 100 else 100)
728x90
728x90
'Language > Python' 카테고리의 다른 글
[Python][백준 2176][다익스트라,DP] 합리적인 이동경로 - 컴도리돌이 (0) | 2022.06.16 |
---|---|
[Python][백준 10282][다익스트라] 해킹 - 컴도리돌이 (0) | 2022.06.15 |
[Python][백준 6209][이분 탐색] 제자리 멀리뛰기 - 컴도리돌이 (0) | 2022.06.10 |
[Python][백준 25240][해시, 문자열] 가희와 파일 탐색기2 - 컴도리돌이 (0) | 2022.06.09 |
[Python][백준 2539][이분 탐색] 모자이크 - 컴도리돌이 (0) | 2022.06.09 |