memostack
article thumbnail
Published 2020. 8. 30. 01:05
프로그래머스 - 2016년 (Java) Algorithm
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.tistory.com/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형
문제의 저작권은 프로그래머스(https://www.acmicpc.net/)에게 있습니다.

문제

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일같은 날짜는 주어지지 않습니다)

 

예제

a	|	b	|	result
5	|	24	|	TUE

 

 

Coding - Java

if문을 사용하여 1월, 2월, 3월... 분기를 나눠서 풀어도 되지만, 배열을 이용하여 문제를 풀었다.

class Solution {
    public String solution(int a, int b) {
        String answer = "";
        final String[] strDay = {"THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"};
        final int[] dateTable = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

        int totalDate = 0;
        for (int i = 1; i < a; i++) {
            totalDate += dateTable[i];
        }
        answer = strDay[(totalDate + b) % 7];

        return answer;
    }
}

 

채점 결과

채점 결과

 

Reference

 

코딩테스트 연습 - 2016년

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까��

programmers.co.kr

 

반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.tistory.com/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!