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

윤준혁·2024년 2월 27일

나의 풀이

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

과정

  1. 각 달의 일수를 배열로 만들어준다
  2. 1월 1일이 금요일이니 금요일부터 시작되는 일주일 요일 배열을 만들어준다
  3. 인덱스와 일수 사이에 차이때문에 1을 빼준다
  4. a월까지 일수를 더해준다
  5. sumDay에 7(일주일)을 나눠서 요일을 찾는다

다른 사람 풀이

class TryHelloWorld
{
    public String getDayName(int a, int b)
    {
      String answer = "";
      switch(a) {
        case 1:
          if(b % 7 == 1)
            answer = "FRI";
          else if(b % 7 == 2)
            answer = "SAT";
          else if(b % 7 == 3)
            answer = "SUN";
          else if(b % 7 == 4)
            answer = "MON";
          else if(b % 7 == 5)
            answer = "TUE";
          else if(b % 7 == 6)
            answer = "WED";
          else
            answer = "THU";
          break;
        case 2:
          if(b % 7 == 1)
            answer = "MON";
          else if(b % 7 == 2)
            answer = "TUE";
          else if(b % 7 == 3)
            answer = "WED";
          else if(b % 7 == 4)
            answer = "THU";
          else if(b % 7 == 5)
            answer = "FRI";
          else if(b % 7 == 6)
            answer = "SAT";
          else
            answer = "SUN";
          break;
        case 3:
          if(b % 7 == 1)
            answer = "TUE";
          else if(b % 7 == 2)
            answer = "WED";
          else if(b % 7 == 3)
            answer = "THU";
          else if(b % 7 == 4)
            answer = "FRI";
          else if(b % 7 == 5)
            answer = "SAT";
          else if(b % 7 == 6)
            answer = "SUN";
          else
            answer = "MON";
          break;
        case 4:
          if(b % 7 == 1)
            answer = "THU";
          else if(b % 7 == 2)
            answer = "FRI";
          else if(b % 7 == 3)
            answer = "SAT";
          else if(b % 7 == 4)
            answer = "SUN";
          else if(b % 7 == 5)
            answer = "MON";
          else if(b % 7 == 6)
            answer = "TUE";
          else
            answer = "WED";
          break;  
        case 5:
            if(b % 7 == 1)
            answer = "SAT";
          else if(b % 7 == 2)
            answer = "MON";
          else if(b % 7 == 3)
            answer = "TUE";
          else if(b % 7 == 4)
            answer = "WED";
          else if(b % 7 == 5)
            answer = "THU";
          else if(b % 7 == 6)
            answer = "FRI";
          else
            answer = "SUN";
          break;
        case 6:
            if(b % 7 == 1)
            answer = "WED";
          else if(b % 7 == 2)
            answer = "THU";
          else if(b % 7 == 3)
            answer = "FRI";
          else if(b % 7 == 4)
            answer = "SAT";
          else if(b % 7 == 5)
            answer = "SUN";
          else if(b % 7 == 6)
            answer = "MON";
          else
            answer = "TUE";
          break;
        case 7:
            if(b % 7 == 1)
            answer = "FRI";
          else if(b % 7 == 2)
            answer = "SAT";
          else if(b % 7 == 3)
            answer = "SUN";
          else if(b % 7 == 4)
            answer = "MON";
          else if(b % 7 == 5)
            answer = "TUE";
          else if(b % 7 == 6)
            answer = "WED";
          else
            answer = "THU";
          break;
        case 8:
            if(b % 7 == 1)
            answer = "MON";
          else if(b % 7 == 2)
            answer = "TUE";
          else if(b % 7 == 3)
            answer = "WED";
          else if(b % 7 == 4)
            answer = "THU";
          else if(b % 7 == 5)
            answer = "FRI";
          else if(b % 7 == 6)
            answer = "SAT";
          else
            answer = "SUN";
          break;
        case 9:
            if(b % 7 == 1)
            answer = "THU";
          else if(b % 7 == 2)
            answer = "FRI";
          else if(b % 7 == 3)
            answer = "SAT";
          else if(b % 7 == 4)
            answer = "SUN";
          else if(b % 7 == 5)
            answer = "MON";
          else if(b % 7 == 6)
            answer = "TUE";
          else
            answer = "WED";
          break;
        case 10:
            if(b % 7 == 1)
            answer = "SAT";
          else if(b % 7 == 2)
            answer = "SUN";
          else if(b % 7 == 3)
            answer = "MON";
          else if(b % 7 == 4)
            answer = "TUE";
          else if(b % 7 == 5)
            answer = "WED";
          else if(b % 7 == 6)
            answer = "THU";
          else
            answer = "FRI";
          break;
        case 11:
            if(b % 7 == 1)
            answer = "TUE";
          else if(b % 7 == 2)
            answer = "WED";
          else if(b % 7 == 3)
            answer = "THU";
          else if(b % 7 == 4)
            answer = "FRI";
          else if(b % 7 == 5)
            answer = "SAT";
          else if(b % 7 == 6)
            answer = "SUN";
          else
            answer = "MON";
          break;
        case 12:
            if(b % 7 == 1)
            answer = "THU";
          else if(b % 7 == 2)
            answer = "FRI";
          else if(b % 7 == 3)
            answer = "SAT";
          else if(b % 7 == 4)
            answer = "SUN";
          else if(b % 7 == 5)
            answer = "MON";
          else if(b % 7 == 6)
            answer = "TUE";
          else
            answer = "WED";
          break;
        }
        return answer;
    }
    public static void main(String[] args)
    {
        TryHelloWorld test = new TryHelloWorld();
        int a=5, b=24;
        System.out.println(test.getDayName(a,b));
    }
}
  • 효율적인 코드는 아니지만 자신이 아는 한도 내에서 최선을 다한 코드라고 생각한다 좀 멋있다

0개의 댓글