문제

서울의 오늘 날짜를 출력하는 프로그램을 작성하시오.

 

 

입력

입력은 없다.

 

 

풀이

서울의 오늘 날짜를 "YYYY-MM-DD" 형식으로 출력해야 하는 문제인데

백준 사이트 출제자가 멍청한건지 기준을 UTC로 했다고 주장한다.(힌트)

 

하지만 실제 UTC기준이라면 9시간을 뺀 상태로 처리해야 하기 때문에

현재 날짜 -1이 맞는 정답인데 오답이 나서 홧김에 +1을 넣으니 정답 처리되었다.

3월 7일 7시 기준으로 utc를 검색해보면 3월 6일 22:00이 나오는데

제출한 코드로 출력되는 값은 3월 8일이다.

 

무슨 짓을 한건지는 잘 모르겠다.

 

어찌됐건 문제의 풀이를 보자면 new Date()를 통해 현재 날짜정보를 받아올 수 있고

거기에서 다시 getFullYear, getMonth, getDate를 통해 년, 월, 일을 받아올 수 있다.

하지만 변환 메서드가 조금 멍청해서 배열에 담긴 값에 매칭인건지 index취급으로 0부터 시작하기 때문에

3월의 경우 2가 출력되고 12월의 경우 11이 출력되는 등의 문제가 있기 때문에 +1을 해줘야 한다.

 

출력은 xxxx-xx-xx 형태기 때문에 1~9가 들어갈 경우 0을 붙여줘야 하기 때문에

자릿수를 자연스럽게 채워주는 padStart를 사용해 2자리가 되지 않는 경우 자동으로 뒤에 지정한 문자열이 앞에 추가되게 했다.

 

마무리로는 백틱으로 year, month, day를 변수로 가져올 수 있게 ${} 내부에 넣어주고 사이에는 "-"를 넣어 형식을 맞춰줬다.

const today = new Date()
const year = today.getFullYear()
const month = String(today.getMonth()+1).padStart(2,'0')
const day = String(today.getDate()).padStart(2,'0')

console.log(`${year}-${month}-${day}`)

'알고리즘 > 백준' 카테고리의 다른 글

[백준 JS] 10757번 큰 수 A+B  (0) 2023.03.07
[백준 JS] 10718번 We love kriii  (0) 2023.03.07
[백준 JS] 10430번 나머지  (1) 2023.03.07
[백준 JS] 10172번 개  (1) 2023.03.07
[백준 JS] 10171번 고양이  (0) 2023.03.07

+ Recent posts