Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래밍기초
- React Native
- 스파르타코딩클럽
- 부트캠프
- react
- javascript
- next.js 빌드 오류
- HTML
- 알고리즘
- 내일배움카드
- typescript
- styled-components
- 프로그래밍첫걸음시작하기
- spartacodingclub
- ionic-react
- 항해99
- CSS
- ionic
- mongodb
- 바이트디그리
- 프로그래머스
- K디지털크레딧
- Algorithm
- 패스트캠퍼스
- styled components
- PYTHON
- ionic react
- 스파르타코딩클럽 후기
- react-native
- Firebase
Archives
- Today
- Total
bravo my life!
[항해99][알고리즘] [JavaScript] 2016년 본문
728x90
문제 설명
2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT
입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.
제한 조건
- 2016년은 윤년입니다.
- 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)
입출력 예
a | b | result |
5 | 24 | "TUE" |
solution.js
function solution(a, b) {
var dayName = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']
//요일의 배열을 만든다.
var endOfMonth = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
//각 월의 일수를 배열로 만든다.
var day = b + 4;
//2016년 1월 1일이 금요일이라는 예를 주었으니 기본저장값으로 +4를 해주었다.
//1일인 경우 b = 1이므로 1 + 4는 5이다. 나중에 배열처리를 하면 5번째 배열일 것이다.
for (let i = 0; i < a - 1; i++){
day += endOfMonth[i]
//반복문을 실행한다.
//1월인 경우 a는 1인데 해당월이 가산되지 않아야 하기때문데 조건에 -1을 해주었다.
//endOfMonth의 i번째 배열을 변수 day에 더한다.
//이 때 변수 day에는 d의 값이 1인 경우 1+4인 5가 미리 저장되어있는 상태에서
//endOfMonth의 i번째 배열의 값이 더해진다. 위의 예에서는 5 + 0이니 합은 5이다.
}
return dayName[day%7];
//일주일은 7일이므로 7을 나눈 나머지를 구하여 그 값을 배열로 두어 변수 dayName의 값을 구한다.
}
console.log(solution(1,1))
다른 풀이
function solution(a, b) {
return new Date(2016, a-1, b).toString().slice(0,3).toUpperCase();
//new키워드를 사용한 Date함수에
//문자열로 만들기위한 toString,
//필요한 부분을 추출하기 위한 slice,
//해당 문자를 대문자로 만들기 위한 toUpperCase를 사용하여 return한다.
}
console.log(solution(1,1))
또 다른 풀이
function solution(a, b) {
var dayName = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT']
//요일의 배열을 만든다.
var date = new Date(2016, a-1 , b);
//new 키워드를 사용한 Date함수로 도출된 값을 변수 date에 저장한다.
var theDay = date.getDay()
//변수 date에 저장된 값에서 day값을 가져와 변수 theDay에 저장한다.
return dayName[theDay]
}
console.log(solution(1,2))
'Algorithm' 카테고리의 다른 글
[항해99][알고리즘] [JavaScript] 이상한 문자 만들기 (0) | 2022.03.15 |
---|---|
[항해99][알고리즘] [JavaScript] 문자열 다루기 기본 (0) | 2022.03.14 |
[항해99][알고리즘] [JavaScript] 핸드폰 번호 가리기 (0) | 2022.03.13 |
[항해99][알고리즘] [JavaScript] 평균 구하기 (0) | 2022.03.12 |
[항해99][알고리즘] [JavaScript] 음양 더하기 (0) | 2022.03.12 |