본문 바로가기

Fundamentals/Algorithms

[해커랭크] Day of the Programmer

문제링크

 

Day of the Programmer | HackerRank

Given year, determine date of the 256th day of the year.

www.hackerrank.com

마리는 시간 여행을 하기 위해 타임머신을 발명했고, 1700년부터 2700년 사이의 어느 해에 러시아를 방문하여 프로그래머의 날(해당 연도의 256번째 날)을 경험하고자 합니다. 두 달력 시스템 모두 2월은 유일하게 일수가 변하는 달로, 윤년에는 29일, 그 외의 해에는 28일입니다. 줄리안 달력에서는 4로 나누어 떨어지는 해가 윤년이고, 그레고리안 달력에서는 다음 중 하나에 해당하는 해가 윤년입니다.

- 400으로 나누어 떨어짐.

- 4로 나누어 떨어지고 100으로 나누어 떨어지지 않음.

 

풀이 :

 

function dayOfProgrammer(year) {
    const isLeapYear = (year) => {
        if (year < 1918) { 
            return year % 4 === 0;
        } else { 
            return (year % 400 === 0) || (year % 4 === 0 && year % 100 !== 0);
        }
    };

    if (year === 1918) {
        return "26.09.1918";
    }

    if (isLeapYear(year)) {
        return `12.09.${year}`;
    } else {
        return `13.09.${year}`;
    }
}

주어진 연도에 대해 윤년 여부를 판단하고, 그에 따라 256번째 날이 되는 날짜를 계산하여 반환합니다. 1918년의 경우는 달력 변경으로 인해 특별히 처리합니다.

'Fundamentals > Algorithms' 카테고리의 다른 글

[해커랭크] Sales by Match  (0) 2023.12.05
[해커랭크] Bill Division  (0) 2023.12.05
[해커랭크] Migratory Birds  (0) 2023.12.04
[해커랭크] Divisible Sum Pairs  (0) 2023.12.04
[해커랭크] Subarray Division  (0) 2023.12.04