2021년 1월 2일 토요일

[Algorithm] 요일구하기


문제 ] 

a와 b 정수 값을 입력 받아 2016년 a월 b일의 요일을 리턴한다.



코드1 ]

import java.util.*;
import java.text.*;

class Solution {
    public String solution(int a, int b) {

        String answer = "";     
        String aa = String.valueOf(a);
        String bb = String.valueOf(b);
        String[] week = {"SUN","MON","TUE","WED","THU","FRI","SAT"};

        if(aa.length() < 2){
            aa = '0' + aa;
        }
        if(bb.length() < 2){
            bb = '0' + bb;
        }
        
        String input_date = "2016"+aa+bb;
        DateFormat date_format = new SimpleDateFormat("yyyyMMdd");
        Date get_date = new Date();
        
        try{
            get_date = date_format.parse(input_date);
        }catch(ParseException e){
            e.printStackTrace();
        }
        
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(get_date);
        
        int idx = calendar.get(Calendar.DAY_OF_WEEK)-1;
        answer = week[idx];

        return answer;
    }
}



코드2]

자바 8에서는 Calendar클래스의 단점들을 보완하는 LocalDate클래스가 등장한다.

아래 코드는 코드1과 같은 결과다.


import java.time.*;

class Solution {
    public String solution(int a, int b) {

        return LocalDate.of(2016, a, b).getDayOfWeek().toString().substring(0,3);

    }
}



LocalDate 클래스 참조 :

https://jeong-pro.tistory.com/163


댓글 없음:

댓글 쓰기