본문 바로가기
Programmers

[Java] 프로그래머스: 2016(switch사용)

by 엘딘 2022. 6. 17.

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

 

내가 사용한 switch문은 다른 블로그의 풀이보다 길다... 

int a=0;

String fruit= "";

 

switch(a){

    case 1:

        fruit= "바나나";

        break;

    case 2:

        fruit= "딸기";

        break;

    case 3:

        fruit= "사과";

        break;

    default:

        fruit= "귤";

        break;

}

System.out.println(fruit);

 

> a가 1일때 '바나나'를 출력

   default - a가 1,2,3이 아닌 다른 수가 올 경우 '귤'을 출력

 

 

문제

 

class Solution {
    public String solution(int a, int b) {
        int month = 0;
		int day;
		String week = "";
        String answer = "";
		
        // a는 달로 2,3,4월로 갈수록 일수가 누적되도록 계산
        switch(a) {
            case 1: 
                month = 0;
                break;
            case 2: 
                month = 31;
                break;
            case 3: 
                month = 60;
                break;
            case 4: 
                month = 91;
                break;
            case 5: 
                month = 121;
                break;
            case 6: 
                month = 152;
                break;
            case 7: 
                month = 182;
                break;
            case 8: 
                month = 213;
                break;
            case 9: 
                month = 244;
                break;
            case 10: 
                month = 274;
                break;
            case 11: 
                month = 305;
                break;
            case 12: 
                month = 335;
                break;
        }
		
        // 일주일 7로 나누어주어 나머지로 요일을 계산
        day = (month + b) % 7;

        switch(day) {
            case 0:
                answer = "THU";
                break;
            case 1:
                answer = "FRI";
                break;
            case 2:
                answer = "SAT";
                break;
            case 3:
                answer = "SUN";
                break;
            case 4:
                answer = "MON";
                break;
            case 5:
                answer = "TUE";
                break;
            case 6:
                answer = "WED";
                break;
        }
        
        return answer;
    }
}

 

 

 

댓글