[Java] 2016년

2025. 3. 5. 09:45·CodingTest

1. 문제 설명


(1) 문제 설명


 

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요?

두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요.

요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT입니다.

예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.

 

 

 

(2) 제한 조건


  • 2016년은 윤년입니다.
  • 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)

 

 

 

(3) 입출력 예


a b result
5 24 "TUE"

 

 

 

2. 문제 해결


(1) 문제 해결 접근


문제는 날짜의 요일을 계산하는 것입니다.

Java의 내장 라이브러리를 사용하여 문제를 해결할 수 있습니다.

`java.time`패키지의 LocalDate클래스를 사용하면,

간단하게 날짜 객채를 생성하고 요일을 구할 수 있습니다.

 

 

 

(2) 전체 코드


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

class Solution {
    public String solution(int a, int b) {
        // 2016년 a월 b일의 날짜 객체 생성
        LocalDate date = LocalDate.of(2016, a, b);
        
        // 해당 날짜의 요일 가져오기
        DayOfWeek dayOfWeek = date.getDayOfWeek();
        
        // 요일을 배열로 매핑
        String[] days = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
        
        // DayOfWeek의 값은 1(MONDAY)~7(SUNDAY)이므로, 배열에 맞게 인덱스 조정
        return days[dayOfWeek.getValue() % 7];
    }
}

 

 

 

(3) 코드 설명


1️⃣ 날짜 객체 생성

LocalDate date = LocalDate.of(2016, a, b);

2016년의 특정 월 (a)과 일(b)에 해당하는 날짜 객체를 생성합니다.

 

2️⃣ 요일 정보 추출

DayOfWeek dayOfWeek = date.getDayOfWeek();

생성된 LocalDate 객체 date로부터 요일 정보를 DayOfWeek열거형으로 가져옵니다.

DatyOfWeek는 요일을 월요일(1)부터 일요일(7)까지 정수 값으로 표현합니다.

 

3️⃣ 요일 매핑 및 인덱스 조정

	String[] days = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
    return days[dayOfWeek.getValue() % 7];

`dayOfWeek.getValue()`는 월요일부터 일요일까지 1~7을 반환합니다.

연산(%7)을 사용하여 DayOfWeek의 숫자를 문제에서 요구하는 요일 배열의 인덱스로 매핑합니다.

 

 

 

728x90
저작자표시 비영리 변경금지 (새창열림)
'CodingTest' 카테고리의 다른 글
  • [Java] 명예의 전당 (1)
leonie.
leonie.
  • leonie.
    leveloper
    leonie.
  • 글쓰기 관리
    • 분류 전체보기
      • Language
        • Java
      • Git
      • CS
      • CodingTest
        • [프로그래머스] 자바
      • Framework
        • Spring
      • Information
      • DBMS
        • Redis
        • SQL
      • AWS
      • OS
        • Mac
      • 자격증
        • 정보처리기사
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    의존성주입
    스프링
    Java
    JPA
    프로그래머스
    알고리즘
    자바
    springboot
    Hibernate
    코딩테스트
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
leonie.
[Java] 2016년
상단으로

티스토리툴바