csmoon1010의 SW 블로그

[200507] 2016년 - 연습문제(level1) 본문

Coding Test/프로그래머스

[200507] 2016년 - 연습문제(level1)

csmoon1010 2020. 5. 7. 14:04

1. 문제이해

- 2016년 1월 1일이 금요일이고 윤년(2월이 29일까지 있음)일 때 a년 b일의 요일 구하기

 

2. 전략

- days배열 : 달별 총 날짜 수를 저장해둔 배열

- result배열 : THU부터 순서대로 요일명을 저장해둔 배열

- sum = (a월 이전까지의 날짜 합) + b = (days[0] + ... + days[a-2]) + b

- sum%7에 해당하는 index의 result가 answer!!

 

3. 참고사항

X

 

4. 코드

class Solution {
  public String solution(int a, int b) {
      String answer = "";
      int[] days = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
      String[] result = {"THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"};
      int sum = 0;
      for(int i = 0; i < a-1; i++){
          sum += days[i];
      }
      sum += b;
      answer = result[sum%7];
      return answer;
  }
}
Comments