[JAVA/프로그래머스] 연습문제: 2016년

👀 문제

https://programmers.co.kr/learn/courses/30/lessons/12901

👊 도전

1. 설계

  1. a월 b일까지의 총 일을 구한다.
  2. 총 일%7하여 해당 요일을 구한다.

2. 구현 (성공 코드)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/**
 *
 * @author HEESOO
 *
 */
 class Solution {
  public String solution(int a, int b) {
      String answer = "";
      int total=0;
      String[] day={"THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"};
      for(int i=1;i<a;i++){
          if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) total+=31;
          else if(i==2) total+=29;
          else total+=30;
      }
      total+=b;

      answer=day[total%7];
      return answer;
  }
}
 

3. 결과

실행결과 🤟 성공 🤟

4. 설명

  1. 전체 일 수를 계산한다.
    • 1월부터 a-1월까지 일 수 를 더한 후, 나머지 b를 더하여 전체 일 수를 계산한다(total).
  2. total%7을 보고 요일을 찾는다.
    • 1월 1일이 금요일이므로 나머지가 0이면 목요일이다.
    • 나머지와 배열 인덱스를 같게 하여 쉽게 요일을 찾을 수 있도록 한다. 따라서 배열 day에는 목요일(나머지가 0)부터 저장한다.

👏 해결 완료!

어렵지 않은 문제였다!