프로그래머스 1단계 2016년

i do as i say·2020년 8월 25일
0

문제 설명

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 2016년 a월 b일이 무슨 요일인지 리턴하는 함수 작성.

a=5, b=24라면 5월 24일은 화요일이므로 문자열 TUE를 반환해야 함.

문제 풀이

수도코드

  1. 날짜를 셀 수 있는 카운트 변수 만들기.
  2. 금요일이 1일이 될 수 있게 (2016년 1월 1일은 금요일이라고 했으니) 배열을 생성.
  3. 12월까지의 날짜를 배열에 생성. 윤달 29일 빼먹지 말기.
  4. for문을 돌려서 a만큼 일수를 카운드에 넣어 준다.
  5. b의 날짜도 넣어 주고,
  6. 7로 나눈 나머지 값만큼의 인덱스를 day에 적용해 리턴.
function solution(a, b) {
    let count = 0;
    let day = ["THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"];
    let month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; //윤달 29일 넣기
    for(let i = 0; i < a - 1; i++) {
        count += month[i];
    }
    count += b;
    return day[count % 7]
    
}

코드 개선 사항

  1. 사실 어떻게 해야 될지 막막해서 참고한 게 좀 많음.
  2. new Date를 사용해서 풀던데, 신박한 방법이라고 생각했음.
profile
커신이 고칼로리

0개의 댓글