문제
12시 단위+AM/PM으로 표시된 시간이 입력된다. AM/PM을 제거하고, 입력된 시간을 24시 단위로 바꾸어 출력하라.
Sample Input :
07:05:45PM
Sample Output :
19:05:45
내 코드:
import os
import sys
def timeConversion(s):
am_pm = s[-2:]
time = s[:2] # '시' 부분만 슬라이싱
changed_time = int(time)+12
pix = s[2:-2] # 변동되지 않는 '분' 부분 슬라이싱
if am_pm=='AM' and time=='12' : # 자정~새벽 1시까지
return '00'+pix
elif am_pm=='PM' and time=='12' : # 정오~오후 1시까지
return s[:-2]
else:
if am_pm == 'AM':
return s[:-2]
else:
return str(changed_time)+pix
if __name__ == '__main__':
f = open(os.environ['OUTPUT_PATH'], 'w')
s = input()
result = timeConversion(s)
f.write(result + '\n')
f.close()
Comment: 규칙 외 예외 시간대(자정~새벽 1시, 정오~오후 1시)를 어떻게 분리하느냐가 핵심인 문제입니다.
1. 자정 시간대의 경우 다른 오전 시간대처럼 시가 그대로 나오는 것이 아니라 '00'이 들어가야 합니다.
2. 또한 정오부터 오후 1시까지의 시간대는 다른 오후 시간대처럼 시에 +12가 되는 것이 아니라, 오전 시간대처럼 시간이 그대로 출력되어야 합니다.
이 두 가지 예외만 잘 고려한다면 나머지는 쉽게 풀립니다.
'Algorithm > HackerRank' 카테고리의 다른 글
[HackerRank]Permuting Two Arrays (0) | 2021.03.02 |
---|---|
[HackerRank]Grading Students(풀이 성공) (0) | 2021.02.24 |
[HackerRank]Birthday Cake Candles(풀이 성공) (0) | 2021.02.01 |
[HackerRank]Diagonal Difference(풀이 성공) (0) | 2021.01.28 |
[HackerRank]Compare the Triplets(풀이 성공) (0) | 2021.01.16 |