문제 :
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이라고 하는 점이 재밌네
'Algorithm' 카테고리의 다른 글
[HackerRank/js] Lonely Integer (배열 내 중복되지 않은 숫자 찾기) (0) | 2022.07.05 |
---|---|
[Hackerrank/js] 중앙값 찾기 (Math.floor) (0) | 2022.07.04 |
[HackerRank/js] Mini-Max Sum (배열의 합을 구해 비교하기) (0) | 2022.07.04 |
[Hackerrank/js] Plus Minus (0) | 2022.07.04 |
[프로그래머스/js] 키패드 누르기 (0) | 2022.06.29 |