📊 Algorithm&SQL

[Java/프로그래머스] 2016년

오늘 ONEUL 2022. 11. 19. 08:47

문제

 

 

 

풀이

(1) 문제 분석하기

  • 각 요일을 배열로 선언
  • 전체 월의 마지막일을 배열로 선언(1일은 금요일이므로 index 1이 금요일이 될 수 있게)
  • 입력받은 날짜까지의 총 일수를 계산하고 7로 나눈 나머지로 요일 배열에 index로 접근

 

(2) 슈도코드 작성하기

요일 배열 선언
전체 월의 마지막일 배열 선언
for(입력 받은 월 - 1 만큼) {
	전체 월의 마지막 일 배열 돌면서 총일수 구하기
}
총일수에 b를 더하고 7로 나눈 값을 int형 변수에 담기
int형 변수로 요일 배열에 index로 접근하여 출력

 

(3) 코드 구현하기

package algorithm.test01;

public class YearOf2016 {
    public static void main(String[] args) {
        // 요일 배열 만들고
        // 일수 배열 만들고
        // 받은 월만큼 일수 더하고 일수도 같이 더해서
        // 7로 나눠서 나온 나머지로 배열 인덱스 접근

        int a = 5;
        int b = 24;

        System.out.println(solution(a, b));
    }

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

        String[] week = {"THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"}; // 금요일이 1일
        int[] monthOfDay = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

        int days = 0;
        for (int i = 0; i < (a - 1); i++) {
            days += monthOfDay[i];
        }
        int weekIndex = (days + b) % 7;
        answer = week[weekIndex];

        return answer;
    }
}

 

 

 

 

프로그래머스

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

programmers.co.kr