https://school.programmers.co.kr/learn/courses/30/lessons/12901
나의 코드
function solution(a, b) {
var answer = '';
let sum= 0;
const monthList = [31,29,31,30,31,30,31,31,30,31,30,31]
const days = ["FRI","SAT","SUN","MON","TUE","WED","THU",];
let totalDay = 0;
for(i=0; i<a-1; i++){
totalDay += monthList[i]
}
let weekDay = ""
totalDay += b - 1;
weekDay = days[totalDay%7];
return weekDay;
}
이 부분은 다른 블로거를 참고했다.
문명히 알고림즘이 있다고 생각했는데 감이 잡히지 않아 참조했다.
원리는 간단했다.
20xx년의 1월 1일이 무슨 요일인지 알면된다.
그래서 그 요일은 days의 맨 앞에 기재해주면된다.
그리고 각 달이 몇일까지 있는지 리스트 배열을 만들면 준비끝
예를 들어
5월 25일이면
for문을 통해서 4월까지 모든 일수를 더하고
남은 25일을 추가로 더해주고
거기서 7로 나눈 나머지를 계산해주면
그 값에 해당되는 days배열의 순번이 해당 요일이된다.
다른 사람 풀이
function day(a,b){
const date = Date(2016, (a-1), b);
return date.split(" ")[0].toUpperCase()
}
다른 사람 풀이에서 내가 더 수정해서 간단하게 만들었다.
이번 기회에 Date() 라는 메서드에 대해 공부해야겠다.
'알고리즘 > 프로그래머스 - JS' 카테고리의 다른 글
[프로그래머스-JS] level.1 나머지가 1이 되는 수 찾기 (0) | 2022.07.22 |
---|---|
[프로그래머스-JS] level.1 최소직사각형 (0) | 2022.07.22 |
[프로그래머스-JS] level.1 두 개 뽑아서 더하기 (0) | 2022.07.19 |
[프로그래머스-JS] level.1 예산 (0) | 2022.07.15 |
[프로그래머스-JS] level.1 3진법 뒤집기 (0) | 2022.07.15 |