티스토리 뷰

알고리즘/백준

[백준] 1924번 2007년

머어하지 2018. 11. 8. 17:32

생각

월과 일이 숫자로 주어진다. 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