본문 바로가기

Fundamentals/Algorithms

[해커랭크] Time Conversion

문제링크

 

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 값을 조건에 맞게 계산하여 템플릿 리터럴로 결과값을 반환합니다. 

'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