본문 바로가기
프로그래머스 문제풀이 Java

Level -2016

by zkzk7290 2024. 8. 31.
반응형

 프로그래머스 문제 2016년 

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

 

프로그래머스

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

programmers.co.kr

 

제한 조건- 주의 깊게 볼  것 

  • 2016년은 윤년입니다.
  • 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일 같은 날짜는 주어지지 않습니다)
  public String solution(int a, int b) {
       
        String[] day = {"FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"};
        // 윤년의 일 수 
        int[] month = {31,29,31,30,31,30,31,31,30,31,30,31};
        int count =-1;
        for(int i =0; i<a-1; i++){
            count+=month[i];
        }
        return day[(count+b)%7];
    }
}

 

- day 배열에 SUN가 아닌 FRI을 첫 번째로 둔 이유는 -2016년 1월 1일 실제 금요 일라서 금-토- 일 -월-화 -수-목  이렇게 

설정했다.

 - month -31,29,31... 설정한 이유?  총 일수 구하기 위해서 

- i < a-1을  설정하는 이유: 예를 들어 a가 3월 1~2까지 총 일수 더해야 한다  만약에 a-1을 설정하지 않으면 3월까지 포함되니깐 

- 요일 를 구하는 둠스데이 알고리즘 있다.  그거는 조금 더 공부하고 알려 드릴게요!!

-%7:  요일이 7개 밖에서 없어서  그래서 이렇게 설정 

 

반응형

'프로그래머스 문제풀이 Java' 카테고리의 다른 글

분수의 덧셈-java  (0) 2025.01.27
자연수 뒤집어 배열로 만들기 풀이  (0) 2024.09.05
삼각형의 완성 조건(2)  (0) 2024.08.17