관리 메뉴

ballqs 님의 블로그

[프로그래머스 코딩문제] 2016년 - JAVA 본문

내일배움캠프/Java

[프로그래머스 코딩문제] 2016년 - JAVA

ballqs 2024. 7. 15. 17:54

해당 문제를 풀다가 채점에서 테스트케이스 2개 정도 런타임 에러로 틀렸었다.

이유를 알아보니 문제에서는 "SUN","MON","TUE","WED","THU","FRI","SAT" 이렇게 나와 있어서

그대로 코드에 적용해서 동작 시켰기 때문이다.

 

코드

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

class Solution {
    public String solution(int a, int b) {
        String answer = "";
        // 요일
        String yoil[] = {"SUN","MON","TUE","WED","THU","FRI","SAT"};

        // 1. LocalDate 생성
        LocalDate ymd = LocalDate.of(2016, a, b);
        // 2. DayOfWeek 객체 구하기
        DayOfWeek yoil_str = ymd.getDayOfWeek();
        // 3. 숫자 요일 구하기
        int yoil_val = yoil_str.getValue();
        
        answer = yoil[yoil_val];
        
        return answer;
    }
}

채점 결과

 

해당 문제를 파악해본 결과

        LocalDate ymd = LocalDate.of("년", "월", "일");
        DayOfWeek yoil_str = ymd.getDayOfWeek();
        int yoil_val = yoil_str.getValue();

yoil_str.getValue() 는 1 ~ 7까지의 값을 return 한다고 한다.

1이 월요일이고 7이 일요일이였던 것이다.

다음에도 이런 일 없도록 주의하자!!

 

이에 맞게 코드를 수정했다.

 

정답 코드

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

class Solution {
    public String solution(int a, int b) {
        String answer = "";
        // 요일 (수정한 코드)
        String yoil[] = {"MON","TUE","WED","THU","FRI","SAT","SUN"};

        // 1. LocalDate 생성
        LocalDate ymd = LocalDate.of(2016, a, b);
        // 2. DayOfWeek 객체 구하기
        DayOfWeek yoil_str = ymd.getDayOfWeek();
        // 3. 숫자 요일 구하기
        int yoil_val = yoil_str.getValue();
        
        // -1 처리
        answer = yoil[yoil_val - 1];
        
        return answer;
    }
}

 

채점 결과

 

 

notion 정리

https://www.notion.so/2016-5267549c1fe14dcf9d234abb1d5a4903