12시간제 AM/PM 형식으로 주어진 시간을 24시간제로 변환하는 것이 문제의 목표입니다.주의사항:
12시간제에서 '12:00:00AM'은 24시간제에서 '00:00:00'입니다.
12시간제에서 '12:00:00PM'은 24시간제에서 '12:00:00'입니다.
풀이 :
function timeConversion(s: string): string {
const isAM = s.includes('AM');
const time = s.substring(0,8).split(':')
if(isAM && time[0] === '12'){
time[0] = '00';
}else if( !isAM && time[0] !== '12'){
time[0] = (parseInt(time[0], 10) + 12).toString();
}
return time.join(':');
}
includes 메서드를 활용하여 AM/PM을 구분하며 시간에 해당하는 문자열을 추출하여 split을 활용하여 구분자 기준으로 나누어 배열로 반환합니다. 오전 12시 경우에는 '00'시로 설정하도록 처리하였습니다.
다른 풀이(AI) :
function timeConversion(s: string): string {
const amPm = s.substr(8);
let [hours, minutes, seconds] = s.substr(0, 8).split(':');
if (amPm === 'AM' && hours === '12') {
hours = '00';
} else if (amPm === 'PM' && hours !== '12') {
hours = (parseInt(hours, 10) + 12).toString();
}
return `${hours}:${minutes}:${seconds}`;
}
substr 메서드를 활용하여 AM/PM을 값을 구분하며 값을 변수에 할당하고 시간에 해당하는 문자열을 추출합니다. 추출한 문자는 구조분해 할당하여 hours 값을 조건에 맞게 계산하여 템플릿 리터럴로 결과값을 반환합니다.
'Fundamentals > Algorithms' 카테고리의 다른 글
[해커랭크] Apple and Orange (0) | 2023.11.16 |
---|---|
[해커랭크] Grading Students (0) | 2023.11.16 |
[해커랭크] Birthday Cake Candles (0) | 2023.11.15 |
[해커랭크] Staircase (0) | 2023.11.15 |
[해커랭크] Mini-Max Sum (0) | 2023.11.14 |