Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python으로 12시간제 시간을 24시간제로 변환하는 방법

문자열 s가 주어졌다고 가정해 봅시다. 이 문자열은 오전(am) 또는 오후(pm) 접미사가 붙은 12시간제 시간을 나타내며, 우리는 이를 24시간제 표기법으로 변환해야 합니다.

예를 들어 입력이 "08:40pm"이라면 출력은 "20:40"이 되어야 합니다.

문제 해결 접근 방식

이 문제는 다음 단계를 따라 해결할 수 있습니다.

  • hour: 문자열 s의 인덱스 0~2 구간(시 부분)을 정수로 변환한 뒤 12로 나눈 나머지를 저장합니다.
  • minutes: 문자열 s의 인덱스 3~5 구간(분 부분)을 정수로 변환하여 저장합니다.
  • 만약 s[5]가 'p'라면(오후인 경우), hour에 12를 더합니다.
  • 최종 결과를 "hour:minutes" 형식으로 반환합니다.

여기서 시(hour)를 12로 나눈 나머지를 사용하는 이유는 자정(12:00am)과 정오(12:00pm)를 올바르게 처리하기 위함입니다. 12 % 12 = 0이므로 자정은 00시가 되고, 오후의 경우 여기에 12를 더하면 정오는 12시로 정확히 변환됩니다.

구현 예제

아래 코드를 통해 더 자세히 이해해 보겠습니다.

class Solution:
    def solve(self, s):
        hour = int(s[:2]) % 12
        minutes = int(s[3:5])
        if s[5] == 'p':
            hour += 12
        return "{:02}:{:02}".format(hour, minutes)

ob = Solution()
print(ob.solve("08:40pm"))

입력

"08:40pm"

출력

20:40

코드에서 사용된 {:02} 포맷 지정자는 숫자를 두 자리로 맞춰주는 역할을 합니다. 덕분에 한 자리 숫자 앞에 자동으로 0이 채워져 "08:05"처럼 일관된 시간 형식을 유지할 수 있습니다.