- 백준 2884번 풀이2022년 08월 18일
- Lv. 34 라이츄
- 작성자
- 2022.08.18.:09
문제
https://www.acmicpc.net/problem/2884
기존 시각보다 45분 땡기기. 이게 한줄요약이다.
근데 나도 아침잠 많아서 알람 30분 땡기는데…
스누징 와사실 그래도 피곤함… ㅋㅋㅋㅋㅋㅋ풀이
일단 전제하고 가야 할 것이 있는데, 시간 계산은 일반적인 10진법이 아니다. 시간은 12진법(그래서 하루가 24시간), 분과 초는 각각 60진법이다. 그래서 10시 30분에서 45분을 빼게 되면
- 10:30-0:45
- 분이 -15분이 된다
- 시간에서 하나 받아내림한다 (시간은 9가 된다)
- 받아온 60분을 더하면 45분이 된다
이런 과정을 거치게 된다.
h,m=map(int,input().split(" ")) m=m-45 if m < 0: h=h-1 m=m+60 print(h,m) else: print(h,m)
이건 일차적으로 분만 처리한 코드. 저거 그대로 내면 틀린다. 왜냐하면 위 논리대로 분에 대한 계산은 처리했으나, 시간에 대한 계산은 처리하지 않았기 때문에 0시 0분을 입력하게 되면 -1시가 나오게 된다.
h,m=map(int,input().split(" ")) m=m-45 if m < 0 and h != 0: h=h-1 m=m+60 print(h,m) elif m < 0 and h == 0: h=h+23 m=m+60 print(h,m) else: print(h,m)
그래서 시간이 0시이면서 분에서 45를 뺐을 때 음수일 때에 대한 처리도 진행해야 한다. (24시간제라 23을 더했다. 0시를 다른 말로 24시라고도 하니까)
'BOJ > [BOJ] Python' 카테고리의 다른 글
백준 8393번 풀이 (0) 2022.08.18 백준 10950번 풀이 (0) 2022.08.18 백준 14681번 풀이 (0) 2022.08.18 백준 2753번 풀이 (0) 2022.08.18 백준 2588번 풀이 및 응용 (0) 2022.08.18 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)