728x90
프로그래머스 1단계
2022년에 2016년 문제를 풀어볼까요?
2016년!
for과 push를 통한 방법입니다.
1. 1월 1일부터 a월 b일까지 며칠 차이인지 저장할 변수
2. a달 전까지의 모든 달에 대해 각 달의 날짜 수 더해줌
3. b일 더해주고 1월 0일이 아닌 1월 1일부터 시작하므로 1 빼줌
function solution(a, b) {
let arr = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
let week = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"];
let passedDays = 0;
for (let i = 1; i < a; i++) passedDays += arr[i];
passedDays += b - 1;
return week[(5 + passedDays) % 7];
}
2016년 : 다른 사람 풀이
for/if 와 sort를 통한 방법입니다.
1. 문자열을 사용하는 방법 외에 Date를 생성하는 새로운 방법을 알게 되었다. (월 입력에 주의!!!)
2. 생성된 Date를 문자열로 변환하면 앞 세글자는 요일의 줄임말이다!
function getDayName(a,b){
var date = new Date(2016, (a - 1), b);
return date.toString().slice(0, 3).toUpperCase();
}
728x90
반응형
'프로그래머스' 카테고리의 다른 글
프로그래머스 1단계 : 콜라 문제! (5) | 2022.12.06 |
---|---|
프로그래머스 1단계 : 소수 찾기 ! (5) | 2022.12.05 |
프로그래머스 1단계 : 이상한 문자 만들기 (1) | 2022.12.05 |
프로그래머스 1단계 : K번째 수! (1) | 2022.12.05 |
프로그래머스 1단계 : 최소직사각형! (1) | 2022.12.05 |
댓글