๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Javascript] 2016๋…„ (12901)

๋ฌธ์ œ๋งํฌ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - 2016๋…„

2016๋…„ 1์›” 1์ผ์€ ๊ธˆ์š”์ผ์ž…๋‹ˆ๋‹ค. 2016๋…„ a์›” b์ผ์€ ๋ฌด์Šจ ์š”์ผ์ผ๊นŒ์š”? ๋‘ ์ˆ˜ a ,b๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ 2016๋…„ a์›” b์ผ์ด ๋ฌด์Šจ ์š”์ผ์ธ์ง€ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”. ์š”์ผ์˜ ์ด๋ฆ„์€ ์ผ์š”์ผ๋ถ€ํ„ฐ ํ† ์š”์ผ๊นŒ

programmers.co.kr

 

์ ‘๊ทผ ๋ฐฉ๋ฒ•
a์›” b์ผ์˜ ์š”์ผ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.
1์›” 1์ผ์€ ๊ธˆ์š”์ผ์ด๊ณ  ์œค๋…„์ด๋ผ๋Š” ์กฐ๊ฑด์ด ์ฃผ์–ด์กŒ๋‹ค.

1. 1์›” 1์ผ๋ถ€ํ„ฐ a์›” b์ผ๊นŒ์ง€ ๋ช‡์ผ์ด ์ง€๋‚ฌ๋Š”์ง€ ๊ณ„์‚ฐํ•œ๋‹ค. ( a - 1์›”๊นŒ์ง€ ๋ช‡์ผ์ธ์ง€ ๊ตฌํ•˜๊ณ , b์ผ์„ ๋”ํ•˜๋ฉด ๋œ๋‹ค.)

2. ๊ตฌํ•œ totalDay๋ฅผ 7๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ weekArr์˜ index๋ฒˆํ˜ธ๋กœ ๋„ฃ์–ด ๋‹ต์„ ๊ตฌํ•œ๋‹ค.


ํ•˜์ง€๋งŒ ์ด ๋ฌธ์ œ๋Š” ๋”ฑ 2016๋…„์˜ ์š”์ผ๋งŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ํ’€์ด์ด๊ณ .. ๋ฒ”์šฉ์„ฑ์ด ๋ถ€์กฑํ•˜๋‹จ ์ƒ๊ฐ์ด ๋“ค์–ด ๋‹ค๋ฅธ ํ’€์ด๋ฅผ ๋ดค๋Š”๋ฐ.
function getDayName(month, day){
    let date = new Date(`2016-${month}-${day}`);
    let day = date.getDay()
}โ€‹
// date === Tue May 24 2016 00:00:00 GMT+0900 (ํ•œ๊ตญ ํ‘œ์ค€์‹œ)
// day === 2

์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ Date() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ •๋‹ต์„ ๊ตฌํ•œ ๋ถ„๋“ค๋„ ๋งŽ์ด ์žˆ์—ˆ๋‹ค.


 

 

 

function solution(a, b) {
    var answer = '';
    const weekObj = {1:'FRI',2:'SAT',3:'SUN',4:'MON',5:'TUE',6:'WED',0:'THU'}
    let totalDay = getTotalDay(a, b);
    answer = weekObj[totalDay % 7]
    return answer;
}

const getTotalDay = (month, day) => {
    let totalDay = 0;
    const monthLengthArr = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
    
    for(let i = 0; i < month-1; i++){
        totalDay += monthLengthArr[i];
    }
    totalDay += day;
    
    return totalDay;
}