1 λΆ„ μ†Œμš”

πŸ“ [D3_5515] 2016λ…„ μš”μΌ λ§žμΆ”κΈ°

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution {
	// 1μ›” λΆ€ν„° 12μ›” κΉŒμ§€ 일수
	static int[] days = { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

	public static void main(String[] args) throws IOException {
		StringTokenizer st = null;
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();

		// ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€
		int TC = Integer.parseInt(br.readLine());

		for (int tc = 1; tc <= TC; tc++) {
			st = new StringTokenizer(br.readLine(), " ");

			// μ›”
			int month = Integer.parseInt(st.nextToken());

			// 일
			int day = Integer.parseInt(st.nextToken());

			// μš”μΌ κ°’ ( 처음 κΈˆμš”μΌ = 4 )
			int ans = 4;

			// 일 수
			int res = 0;

			// 1월인 경우
			if (month == 1) {
				res = day - 1;
			}
			// 1μ›” μ œμ™Έ λ‚˜λ¨Έμ§€ 달
			else {
				for (int i = 2; i < month; i++) {
					res += days[i];
				}
				// 1μ›” λ‚˜λ¨Έμ§€ κ°’ ( 30 ) + λ§ˆμ§€λ§‰ 달 day
				res += (30 + day);
			}

			// μš”μΌ 계산
			int temp = res % 7;

			// 0 ~ 6
			if (temp <= 2) {
				ans += temp;
			} else {
				ans = ans + temp - 7;
			}

			sb.append("#").append(tc).append(" ").append(ans).append("\n");
		}
		System.out.println(sb);
	}
}

πŸ€” λ‚˜μ˜ 생각

7의 배수λ₯Ό μ΄μš©ν•˜λŠ” 것이 key point μ˜€λ˜ 것 κ°™λ‹€.
2016λ…„ μ•ˆμ—μ„œλ§Œ λ‚ μ§œλ₯Ό μ΄λ™ν•΄μ„œ 비ꡐ적 어렡지 μ•Šμ€ 문제 인 것 κ°™λ‹€.