728x90
반응형
이번 글은 다음 글들을 참조하여 작성하였습니다.
이번 문제에 대한 자세한 사항은 다음 링크를 참조하세요.
이번 문제의 경우 Date() 객체를 활용하여 간단히 풀었다. 아무리 생각해도 계산 식은 떠올리지 못했는데 여러 블로그의 포스팅을 참고하여 다른 해답도 공부했다.
Date() 객체를 활용할 때 유의할 점은 month의 경우 1월이 인덱스 1이 아니라 0부터 시작한다는 점, 그리고 getDay() 메서드를 쓰면 요일이 아니라 요일에 해당하는 인덱스가 반환된다는 점 등을 들 수 있겠다.
Solutions
Solution 1.
function solution(a, b) { /* My Solution */ const date = new Date(2016, a - 1, b); const dates = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']; return dates[date.getDay()]; }
Solution 2.
function solution(a, b) { /* toString() Ver. */ return new Date(2016, a - 1, b).toString().slice(0, 3).toUpperCase(); }
Solution 3.
function solution(a, b) { /* Cal Ver. */ const months = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; const dates = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']; let daySum = b + 4; for (let i = 0; i < a - 1; i++) { daySum += months[i]; } return dates[daySum % 7]; }
Solution 4.
function solution(a, b) { /* reduece() Ver. */ const months = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; const dates = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']; let daySum; if (a < 2) { daySum = b + 4; } else { daySum = months.slice(0, a - 1).reduce((acc, curr) => acc + curr) + b + 4; } return dates[daySum % 7]; }
728x90
반응형
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
[Programmers] level 1: 나머지가 1이 되는 수 찾기 by JavaScript (0) | 2022.07.09 |
---|---|
[Programmers] level 1: 최소직사각형 by JavaScript (0) | 2022.07.08 |
[Programmers] level 1: 두 개 뽑아서 더하기 by JavaScript (0) | 2022.07.07 |
[Programmers] level 1: 예산 by JavaScript (0) | 2022.07.07 |
[Programmers] level 1: 3진법 뒤집기 by JavaScript (0) | 2022.07.07 |
댓글