NHN 코딩테스트를 앞두고 있는데, C, C++, Java 3개 언어로만 응시가 가능하다.
임베디드 과목 수강하면서 꾸준히 사용했던 C로 응시할까 했는데,
Java에 익숙해 질 겸 Java 응시를 결정했다.

문제

https://programmers.co.kr/learn/courses/30/lessons/12901?language=java#

풀이

class Solution {
    public String solution(int a, int b) {
        String[] week = {"THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"};
        int[] month = {0, 0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335};

        return week[(b + month[a]) % 7];
    }
}

어째 파이썬스럽게 풀어낸 것 같다 ^^;

더 나은 풀이

import java.util.*;

class TryHelloWorld
{
    public String getDayName(int month, int day)
    {
        Calendar cal = new Calendar.Builder().setCalendarType("iso8601")
                        .setDate(2016, month - 1, day).build();
        return cal.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, new Locale("ko-KR")).toUpperCase();
    }
    public static void main(String[] args)
    {
        TryHelloWorld test = new TryHelloWorld();
        int a=5, b=24;
        System.out.println(test.getDayName(a,b));
    }
}

캘린더를 이용한 풀이!
출제의도에는 맞지 않는 풀이법이겠지만,
실제 개발은 이렇게 하는게 맞지 않나 생각한다.

댓글남기기