프로그래머스 2016 JS

이명진·2022년 1월 21일
0

코드카타

목록 보기
6/68

2016년도의 요일을 구하는 것이다.
업무에서도 많이 필요했던 기술이었기에 new Date() 내장 함수를 활용해서 풀게 되었다.
내 코드는 이렇다

function solution(a,b) {
const dates= ['SUN','MON','TUE','WED','THU','FRI','SAT']
const year = 2016
let month= a-1;
let day= b
let date= new Date(year,month,day)
let today = dates[date.getDay()]
return today
}

간략 하게 바로 new Date(2016, a-1,b) 로 풀수 있었지만
공부도 다시할겸 해서 보기 좋게 year , month, day 변수에 할당했다.

그리고 다른사람들의 풀이를 구경하였다.

간략 하게 푼 로직이다.

function getDayName(a,b){
var date = new Date(2016, (a - 1), b);
return date.toString().slice(0, 3).toUpperCase();
}

date 를 하면 object 인데 toString을 하니
앞자리에 요일 정보가 나타났다. 이건 전혀 몰랐던 사실이었다.
그래서 앞자리를 분리하고 대문자로 변경하고 리턴
새로운정보를 알게 되었다.

풀이를 보는데 댓글에서 new Date 함수를 사용하는 것에 불만이 있는 분들이 있었다.
알고리즘을 푸는데 객체 메서드를 사용하면 안되는것인가?
사용 하면 안되는 것인줄 전혀 몰랐는데 내가 작성한 new Date 함수 로직이
정답인것 보니 써도 되는것 같다.
new Date 를 쓰지 않고 푸신 분들도 있었는데 전혀 생각하지 못하였다

쭉 훑어 봤는데 마지막 날 [31,29,31...]로 달의 마지막 일자를 써놓고 달까지의 합계를 구해서
7로 나눈 뒤 요일을 도출하는것 같다.
요일 모음을 금요일 부터 썼는데 왜 금요일 부터 썼는지는 잘모르겠다.

오늘도 다른사람들의 지식들을 배우며 알고리즘을 마친다

profile
프론트엔드 개발자 초보에서 고수까지!

0개의 댓글