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
- 프로그래머스 K_Digital Training 프론트엔드
- 개발자 특강
- 모던 자바스크립트 딥다이브
- KDT 프로그래머스 데브코스 프론트엔드
- frontend roadmap study
- TypeScript 문법 소개
- KDT 프로그래머스
- react 프로젝트 리팩토링
- 투포인터알고리즘 js
- 모던 javascript Deep Dive
- 프로그래머스 데브코스 프론트엔드
- Frontend Roadmap
- 모던 자바스크립트 Deep Dive
- Vue3 Router
- 모던 자바스크립트 Deep Dive TIL
- 머쓱이
- 프로그래머스 데브코스
- K_Digital Training
- Vue3
- 백준 js
- react customHook 예시
- 인프런 자바스크립트 알고리즘 문제풀이
- useEffect return
- 프로그래머스 데브코스 프론트엔드 TIL
- 백준 node.js
- 모던 자바스크립트 TIL
- 프로그래머스 K_Digital Training
- 리팩토링 회고
- 우테캠 회고록
- useRef 지역 변수
Archives
- Today
- Total
프론트엔드 개발자의 기록 공간
[프로그래머스 JavaScript] 2016년 본문
프로그래머스 Level1 2016
문제 설명 : 단순 해당 일과 월이 주어졌을때, 맞는 날짜를 출력해주면된다.
저는 문제접근을 다음과 같이 구상했습니다.
기본적으로는 2016년만 해당하면 되기 때문에 2016년에 해당하는 각 월마다 날짜요일을 배열로 넣어주고
각 월에 따라 일수를 계산하면 되지만 친구가 년도, 월, 일에 상관없이 날짜 구하는 공식이 있다는 얘기를 듣고나중에 비슷한 문제가 나왔을때 써먹기 위해 공식을 이용했습니다.
* 젤러 공식 - 그레고리력
function solution(a, b) {
var answer = '';
let y = 16;
//날짜구하는 젤러 공식 그레고리력...
let date = {
0:'SAT',
1:'SUN',
2:'MON',
3:'TUE',
4:'WED',
5:'THU',
6:'FRI',
};
//1,2월인 경우 13,14월로 계산해주고
//12월이 넘어 가므로 입력해 -1년도로 맞춰줌
if(a===2 || a===1){
a += 12;
y -= 1;
}
//공식에의해 내림차순으로 계산
let h = ((b+Math.floor(13*(a+1)/5)+y+Math.floor(y/4)+Math.floor((20/4)-40)) % 7);
//h가 음수가 나올 경우가 존재한다.(세기의 값에 따라)
//mod 7에따라 해당 음수 +7을 해주면된다.
if(h<0) h+=7;
answer = date[h];
return answer;
}
코드 설명 : 해당 공식에 따라 연산을 해주고 각 날짜에 맞는 요일을 선택하여 출력해주면됩니다.
공식을 사용하되 두가지 조건을 처리해주어야합니다.
젤러 공식 설명에도 나와있듯이 1월과 2월일 경우 13월 14월로 바꿔주고 년도 -1년을 해줘야합니다.
그리고 공식에서 나온값이 세기의 값에 따라 음수가 나올수도 있습니다. 이 경우 절대값으로 바꿔준후 7로 나눠주면 양수로 계산했을때와 같은 값이 나옵니다.
*해당 문제에서 세기는 20으로 고정이기 때문에 20으로 고정해줬습니다.
728x90
'알고리즘_JS > 프로그래머스_Level1' 카테고리의 다른 글
[프로그래머스 JavaScript] 가운데 글자 가져오기 (0) | 2021.07.11 |
---|---|
[프로그래머스 JavaScript] 1차 다트게임 (0) | 2021.06.17 |
[프로그래머스 JavaScript] 1차 비밀지도 (0) | 2021.06.09 |
[프로그래머스 JavaScript] 로또의 최고 순위와 최저 순위 (0) | 2021.06.09 |
[프로그래머스 JavaScript] 예산 (0) | 2021.06.08 |
Comments