본문 바로가기

Algorithm

[HackerRank/js] Time Conversion (12h를 24h로 변환하기)

문제 : 

Given a time in 12-hour AM/PM format, convert it to military (24-hour) time.

Note: - 12:00:00AM on a 12-hour clock is 00:00:00 on a 24-hour clock.
- 12:00:00PM on a 12-hour clock is 12:00:00 on a 24-hour clock.

 

값은 다음과 같은 형태로 들어온다

07:05:45PM

아웃풋은 아래와 같아야함

 

내가 선택한 풀이 방법 

1. AM 인지 PM인지 확인한다

2. 시, 분, 초로 나누어 배열에 담고 시간을 AM,PM에 맞게 변환

    2-1. AM 이면서 '12' (자정) 인 경우는 '00' 으로 변경 

    2-2. PM이면서 '12'가 아닌 경우는 input으로 들어온 숫자에 12를 더함 

3. 배열을 다시 string 값으로 합쳐준다

 

function timeConversion(s) {
    const format = s.slice(-2); // PM or AM
    const time = s.replace(/[a-z]/gi,"").split(":"); //[ '07', '05', '45' ]

    if (format === 'AM' && time[0] === '12') {
        time[0] = '00'
    }
    if (format === 'PM') {
        if (time[0] != '12') {
          time[0] = parseInt(time[0]) + 12;
        }
    }
    const militaryTime = time.join(":");  
    
    return militaryTime;
}

 

24Hour를 militaryTime이라고 하는 점이 재밌네