[프로그래머스 코딩테스트 연습문제] 2016년 | 알고리즘 설명 & 문제 풀이 with 자바스크립트(Javascript)

Re_Go·2024년 1월 2일
0

코딩테스트연습

목록 보기
62/106
post-thumbnail

1. 문제 설명(요약)

2. 첫번째 문제 풀이(2024-01-01)

이번 문제는 2016년에 한정해서 푸는 문제라 달력을 좀 보고 시작을 했습니다.
1월 1일은 금요일(FRI) 이더라고요? 그래서 weekArray의 배열의 첫번째를 FRI로 잡고 다음 요일 순으로 일곱 요소를 넣어주었습니다.

그리고 for문을 1(월요일) 부터 주어진 a(월)까지 돌면서 각 월에 들어있는 날짜 (2월은 29일, 그 외의 달 들은 31일 혹은 30일)에 대한 풀 날짜를 누적시켜줍니다.

그리고 for문이 끝난 후 주어진 a월의 b일 만큼 또 날짜를 누적시켜준 후 7로 나눈 나머지를 구해줍니다. 그 나머지 값으로 weekArray의 요소(달)을 선택하면 되는데, 인덱스는 0부터 시작하므로(날짜가 1월 0일이면 가능한데 그게 아니니까.) 나머지 값의 -1인 값을 요소로 선택하여 반환하면 됩니다.

function solution(a, b) {
    let weekArray = ["FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"]
    let totalDays = b;

    for(let i = 1 ; i < a ; i++){
        if(i === 1 || i === 3 || i === 5 || i === 7 || i === 8 || i === 10 || i === 12 ){
            totalDays += 31; 
        }
        else if(i === 2){
            totalDays += 29; 
        }else if(i === 4 || i === 6 || i === 9 || i === 11){
            totalDays += 30; 
        }
    }
    return (weekArray[(totalDays%7) - 1])
}
profile
인생은 본인의 삶을 곱씹어보는 R과 타인의 삶을 배워 나아가는 L의 연속이다.

0개의 댓글