[프로그래머스] - 2016년(Java)

병찬·2022년 3월 25일
0

프로그래머스

목록 보기
21/52
post-thumbnail

문제📝


풀이💡

  • 각 요일들을 초기화한 문자열 배열 week를 만든다.
  • 1~12월의 마지막 일을 초기화한 정수형 배열 endDay를 만든다.
  • 0부터 a-1월까지 res에 각 마지막 일수를 더하고 b일을 더한다.
  • res를 7로 나누었을 때의 나머지 값의 week 인덱스 값을 answer에 대입하고 반환한다.

코드💻

/*
 * 프로그래머스 Lv1 - 2016년
 * 문제링크: https://programmers.co.kr/learn/courses/30/lessons/12901
*/

class Solution {
    public String solution(int a, int b) {
        String answer = "";
        String[] week = {"THU","FRI","SAT","SUN","MON","TUE","WED"};
        // 2016년 1월 1일은 금요일이라서 2번째 인덱스에 임의적으로 위치
       
        int[] endDay = {31,29,31,30,31,30,31,31,30,31,30,31};
        // 2016년은 윤년이기에 2월은 29일로 초기화
        
        int res = 0;
        for(int i = 0; i<a-1; i++) 
            res+=endDay[i]; 
        
        res+=b; 
        answer = week[(res%7)]; 
        return answer;
    }
}

결과😎


느낀점👨‍💻

2016년 1월 1일은 금요일이라서 금요일의 인덱스 위치에 따라 알고리즘 방식이 달라지는데 이러한 점을 초반에 찾지 못하여서 꽤 시간이 걸린 것 같다.


Sinbmil의 알고리즘 문제 코드

-> https://github.com/Sinbmil/Algorithm-Study

profile
코딩을 열심히 하고 있습니다:)

0개의 댓글

관련 채용 정보