반응형

프로그래머스 코딩테스트 2016년 링크 : 여기를 눌러주세요

프로그래머스에 있는 코딩테스트 2016년 이라는 제목의 문제입니다.

프로그래머스 코딩테스트 JAVA 레벨 1에 있는 ‘2016년’ 문제입니다.


코딩테스트 2016년 문제 이해하기

2016년 1월 1일은 금요일이고,

파라미터로 int a (월) , int b(일) 을 전달했을때 무슨요일인지를

String으로 리턴해주는 문제입니다.

제한조건에는 2016 년도는 윤년이라고 적혀있습니다.

윤년이란?

간단하게 말해서 2월이 28일까지가 아닌 29일까지인 년을 말합니다.

자세한 사항은

여기를 클릭해주세요

기본적으로 매월의 일수와, 답으로 제출할 String을 배열로 선언해주도록 하겠습니다.

마지막 int calc는 추후 계산을 위해 선언해줬습니다.

이제부터는 그냥 차근차근 하나씩 풀어나가면 될 것같습니다.

1
2
3
4
5
6
7
8
9
public static String solution(int a, int b) {
        String answer = "THU";
        int[] days = {31,29,31,30,31,30,31,
                     31,30,31,30,31};
        String[] date = {"FRI","SAT","SUN",
                        "MON","TUE","WED","THU"};
        int calc = 0;
}
        

코딩테스트 2016년 이렇게 푸시면 됩니다

우선적으로 전달인자 a를 받아왔을때 a월 이전의 일수들과 b을 더해줍니다.

(Ex. a=2월 b=2일 일때, 1월의 31일과 b의 1일을 계산합니다)

계산한 값들을 %7로 다시 계산한 뒤, 나오는 숫자를

date배열에 넣어줍니다.

아래는 테스트 통과한 코드를 넣어두겠습니다.

감사합니다.


코딩테스트 통과한 코드 보기

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

모든 코드에는 정답이 없으며 저 또한 코드를 잘 짜는게 아니기 때문에

제 코드는 참고용으로만 사용해주시면 감사하겠습니다.

최대한 매일매일 1개의 코딩테스트 문제를 풀려고 노력중입니다.

아직 많이 부족해서 포스팅이 늦을 수 있으니 양해 부탁드립니다.

조언이나 가르침은 항상 기쁜마음으로 받겠습니다.

감사합니다 (_ _)

반응형

+ Recent posts