[매일코딩-프로그래머스] 2016년 01

2021. 11. 22. 10:26WEB Dev/CordingTEST

728x90

 

 

오늘 아침도 일찍 도착해서 2016년 문제를 풀어본다.

 

문제는 2016년 1월 1일은 금요일이라는 힌트로 016년 a월 b일의 요일을 찾는 것인데 

이 힌트를 안 쓰고 그냥 new Date() 함수로 적용했더니 풀었다.

 

뭔가 1월 1일이 금요일이라는 힌트를 가지고 풀어야 할 것 같았는데....

엄청 허무하게 풀려서 기쁘기도 하고 아리송하기도 하다.

 

일단 풀이 방법은 이렇다.

 

- date라는 변수에 new Date() 메소드를 적용한다.

- new Date()에서 날짜를 직접 집어넣는 방법은 new Date(연도, 월, 일) 인데

- 여기서 월은 인덱스처럼 0이 1월이고 1이 2월이기 때문에 -1 된다고 생각하면 된다.

- new Date() 메소드로 만든 날짜 객체는 toString() 메소드로 글자로 나타낼 수 있고

- 이 string으로 받아온 날짜를 dateString이라는 변수에 집어넣는다.

- toString() 메소드를 쓰면 요일 월, 일, 연도, 시간, GMT 가 문자로 출력된다.

- 앞의 요일만 필요한데 요일은 3글자 영문대소문자가 혼합되어 있다.

- 앞의 요일을 잘라내기 위해서 문자열 메소드인 substr()을 사용한다. 괄호 안에는 시작 인덱스, 자를 갯수를 넣어준다.

- 요일을 대문자로만 출력해야 하기 때문에 .toUpperCase() 메소드를 사용해준다.

- 이 메소드 적용된 결과를 answer 변수에 담는다.

 

function solution(a, b) {
    
    let date = new Date(2016,a-1,b);
    let dateString = date.toString();
    
    var answer = dateString.substr(0, 3).toUpperCase();
    return answer;
}

 

뭔가 이 방법이 아닌 여러 조건을 이용해야 할 것 같은데 쉽게 풀려서 당황스러웠다.

내일은 이걸 가지고 조건문으로 풀어봐야겠음 😥

 

728x90