문제
서울의 오늘 날짜를 출력하는 프로그램을 작성하시오.
입력
입력은 없다.
풀이
서울의 오늘 날짜를 "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 |
