티스토리 뷰
생각
월과 일이 숫자로 주어진다. 2007년의 해당 월과 일이 무슨 요일인지 출력하시오. (월요일이면 MON 일요일이면 SUN 같이 출력)
처음 생각
Java에서는 Calendar Class를 사용하면 쉽게 날짜에 대한 구하고 싶은 것들을 구할 수 있다.
▶ set을 통해 원하는 날짜를 입력해준후 해당 날의 요일을 구할 수 있다.
▶ 한가지 주의점이라면 Calendar class의 메소드를 보면 Month는 0부터 시작하는걸 알 수 있다. 따라서 입력받은 월의 -1을 해주어야한다.
다음 생각
get 메소드와 Calendar.DAY_OF_WEEK 를 통해 1~7의 return 값을 얻을 수 있다. 1은 일요일 7을 토요일을 의미한다. String 배열로 1~7에 해당하는 요일값의 출력을 미리 저장해 놓아도되지만 이 부분또한 Calendar의 내장 메소드로 지원을 해준다. getDisplayName을 통해 요일과, 해당 요일을 길게하고 싶은지 짧게하고싶은지를 정해준 후, 지역을 정해주면 바로 Mon, Sun 같은 값을 얻을 수 있다.
1 | cal.getDisplayName(Calendar.DAY_OF_WEEK,Calendar.SHORT,Locale.US).toUpperCase() |
▶ 원하는 출력이 MON, SUN 같은 대문자 형식이므로 대문자 변환을 해주었다.
▶ Locale을 KOREA로 설정하면 한글로 출력도 가능하다.
방안
1) Calendar 사용
1 2 3 4 5 6 7 8 9 10 11 | import java.util.* fun main(args:Array<String>){ var sc : Scanner = Scanner(System.`in`) var mon = sc.nextInt() var day = sc.nextInt() var cal : Calendar = Calendar.getInstance() cal.clear() cal.set(2007,mon-1,day) println(cal.getDisplayName(Calendar.DAY_OF_WEEK,Calendar.SHORT,Locale.US).toUpperCase()) } |
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11047번 동전 0 (0) | 2018.11.11 |
---|---|
[백준] 1449번 수리공 항승 (0) | 2018.11.11 |
[백준] 10172번 개 (0) | 2018.11.08 |
[백준] 2741번 N 찍기 (0) | 2018.11.05 |
[백준] 13908번 비밀번호 (0) | 2018.10.29 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday