[프로그래머스] Level1 _12901번: 2016년 (JAVA)

반응형
728x90
반응형

문제 12901번

https://programmers.co.kr/learn/courses/30/lessons/12901

 

코딩테스트 연습 - 2016년

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까

programmers.co.kr

 

 

 

 

 

풀이

package seohae.algorithm.level1;

import java.time.DayOfWeek;
import java.time.LocalDate;

/**
 * 2016년
 * https://programmers.co.kr/learn/courses/30/lessons/12901
 */
public class Lesson_028_12901 {
    public static void main(String[] args) {
        Lesson_028_12901 lesson = new Lesson_028_12901();

        System.out.println(lesson.solution(5, 24));
    }

    public String solution(int a, int b) {
        String answer = "";

        // yyyy : 2016, mm : a, dd : b
        LocalDate localDate = LocalDate.of(2016, a, b);

        DayOfWeek dayOfWeek = localDate.getDayOfWeek();
        int dayOfWeekNumber = dayOfWeek.getValue(); // 월 ~ 일 (1 ~ 7)

        String[] arr = new String[]{"MON", "TUE", "WED", "THU", "FRI", "SAT", "SUN"};
        answer = arr[dayOfWeekNumber - 1];

        return answer;
    }
}

 

JAVA8의 LocalDate 를 사용하였다. DayOfWeek 객체의 getValue() 메서드를 사용하여 숫자를 얻고 해당 인덱스로 String 타입의 요일을 담고있는 배열에 접근하였다.

 

월 (1) ~ 일 (7)의 값을 얻어오므로 인덱스는 dayOfWeekNumber - 1 로 지정하여 배열의 인덱스 0 ~ 6까지 지정한다.

 

 

반응형

Designed by JB FACTORY