본문 바로가기
Computer/Algorithm_Java

[Algorithm_Java] 2016년 (Success)

by HJ0216 2023. 10. 12.
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

Language: Java

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Solution {
    public String solution(int a, int b) {
        String answer = "";
        String[] strArr = {"THU""FRI""SAT""SUN""MON""TUE""WED"};
        
        int monthDay = calcMonthToDay(a) + b;
        answer = strArr[monthDay%7];
 
        return answer;
    }
    
    public static int calcMonthToDay(int month){
        int day = 0;
        while(--month>0){
            switch (month) {
                case 2:
                    day += 29;
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    day += 30;
                    break;
                default:
                    day += 31;
            }
        }
        return day;
    }
}
 
 

🤔 해설

1. calcMonthToDay(int month)

    - switch문을 활용한 일자 계산

    - while(--month>0)

        - 해당 월은 계산하지 않으므로 전위 연산자 사용

2. String[] strArr

    - 1월 1일 기준 금요일에 맞춰 strArr 선언

3. strArr[monthDay%7]

    - 요일 구하기

 

😮  외의 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
  public String solution(int a, int b) {
      String answer = "";
 
      int[] lastDayOfTheMonth = {31,29,31,30,31,30,31,31,30,31,30,31};
      String[] DayOfTheWeek ={"FRI","SAT","SUN","MON","TUE","WED","THU"};
      int totalDay = 0;
      for(int i = 0 ; i< a-1; i++){
          totalDay += lastDayOfTheMonth[i];
      }
      totalDay += b-1;
      answer = DayOfTheWeek[totalDay %7];
 
      return answer;
  }
}
 
 

* 배열 활용

 

1
2
3
4
5
6
7
8
import java.time.*;
 
class Solution {
  public String solution(int a, int b) {
      return LocalDate.of(2016, a, b).getDayOfWeek().toString().substring(0,3);
  }
}
 
 

* time 함수 사용

 

 

 

🔗 소스 코드
GitHub

 

📚 참고 자료

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr