백준(JAVA) 풀이/구현

백준(JAVA) 1924번 2007년 풀이

개발윗미 2022. 3. 29. 16:23

Java로 구현한 1924번 2007년 문제 풀이입니다.

 

https://www.acmicpc.net/problem/1924

 

1924번: 2007년

첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다.

www.acmicpc.net


import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String[] a = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};
		int[] b = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
		
		int x = sc.nextInt();
		int y = sc.nextInt();
		
		int day = 0;
		for (int i=0; i<x-1; i++) {
			day += b[i];
		}
		int result = (day + y) % 7;
		System.out.println(a[result]);
	}
}

 

1. 결과를 출력할 요일이 담긴 리스트 a와 일 수가 담긴 리스트 b를 정의한다.

 

2. 반복문을 통해 1월부터 입력받은 x월 까지의 일수를 day에 누적해나간다. (배열의 인덱스가 0부터 시작이므로 x-1로 지정)

 

3. 반복문이 종료되면 day 값에 입력받은 y를 더한 뒤, 요일은 총 7개로 구성되어있으므로 7로 나눈 나머지 값을 구해 result에 할당한다.

 

4. 최종적으로 리스트 a의 result 번째의 값을 출력한다.