Fundamentals/Algorithms
[해커랭크] Time Conversion
글로링러
2023. 11. 16. 10:33
Time Conversion | HackerRank
Convert time from an AM/PM format to a 24 hour format.
www.hackerrank.com
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 값을 조건에 맞게 계산하여 템플릿 리터럴로 결과값을 반환합니다.