개발 낙서장

[프로그래머스][알고리즘][JAVA] 2016년 본문

Algorithm/Programmers

[프로그래머스][알고리즘][JAVA] 2016년

권승준 2024. 1. 3. 20:02

2016년

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

 

프로그래머스

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

programmers.co.kr

풀이 방법

날짜에 대한 알고리즘만 잘 설계하면 쉽게 풀리는 문제이다.1월 1일이 금요일이라 했으니 1월 1일을 기준으로 며칠이 지났는지를 계산하여 7로 나눈 나머지로 요일을 구하면 된다.
이미 있는 클래스를 사용하면 코드 몇줄로 끝나겠지만 그렇게 하면 코딩 테스트를 보는 이유가 없기 때문에 직접 구현했다.

소스 코드

더보기
import java.util.HashMap;
import java.util.Map;

class Solution {
    public String solution(int a, int b) {
        String answer = "";

        Map<Integer, Integer> date_map = new HashMap<>();
        String[] day_arr = new String[] {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"};

        date_map.put(1, 31);
        date_map.put(2, 29);
        date_map.put(3, 31);
        date_map.put(4, 30);
        date_map.put(5, 31);
        date_map.put(6, 30);
        date_map.put(7, 31);
        date_map.put(8, 31);
        date_map.put(9, 30);
        date_map.put(10, 31);
        date_map.put(11, 30);
        date_map.put(12, 31);

        int date = 0;

        for(int i = 1; i < a; i++)
            date += date_map.get(i);

        date += b;

        date -= 1;

        answer = day_arr[date % 7];

        return answer;
    }
}
Comments