상세 컨텐츠

본문 제목

2016년

JAVA/JAVA STUDY

by yeongs 2020. 10. 6. 08:52

본문

문제 출처 :

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

문제설명 :

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를 반환하세요.

제한조건 : 

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

입출력 예 :


코드 :

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


class Solution {
    public String solution(int a, int b) {
        String answer = "";
		StringBuilder date2016 = new StringBuilder("2016"); // 문자열 더하기 예정 
		String dateFinal ="";
        if(1<=a && a<10)
        {
            String m = Integer.toString(a);  // String으로 변환 
            String d = Integer.toString(b);
            date2016.append("0");
            date2016.append(m);
            date2016.append(d);
            dateFinal = date2016.toString();
            
        }else if (10<=a && a <13)
        {
        	String m = Integer.toString(a);
            String d = Integer.toString(b);
            date2016.append(m);
            date2016.append(d);
            dateFinal = date2016.toString();
        }else if(a<0 || a >12 || b <0|| b>31 )
        {
            System.out.println(" 입력값 오류입니다.");
        }
        DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd"); // 날짜 형식설정
        Date date;
		try {
			date = dateFormat.parse(dateFinal);
	        Calendar cal = Calendar.getInstance();
	        cal.setTime(date); // 날짜 셋팅 
	        int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); // 요일 계산 함수 

	        switch(dayOfWeek)
	        {
	        case 1:
	        	answer ="SUN";
	        	break;
	        case 2:
	        	answer ="MON";
	        	break;
	        case 3:
	        	answer ="TUE";
	        	break;
	        case 4:
	        	answer ="WED";
	        	break;
	        case 5:
	        	answer ="THU";
	        	break;
	        case 6:
	        	answer ="FRI";
	        	break;
	        case 7:
	        	answer ="SAT";
	        	break;
	        }
	        
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return answer;
    }
}

결과 :

'JAVA > JAVA STUDY' 카테고리의 다른 글

문자열 다루기 기본 : 정규식패턴사용  (0) 2020.10.11
두 정수 사이의 합  (0) 2020.10.06
같은 숫자는 싫어  (0) 2020.10.06
완주하지 못한 선수  (0) 2020.10.02
크레인 인형뽑기 게임  (0) 2020.10.02

관련글 더보기

댓글 영역