ezhoon

[백준] 1924_ 2007년_Java 본문

[Java] 백준 문제풀이/입출력과 사칙연산

[백준] 1924_ 2007년_Java

ezhoon 2022. 1. 11. 20:35

백준 1942

 

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

 

⚠️ 주의사항

  • 2월은 28일까지만
  • 달과 날짜가 한 줄에 출력 및 빈칸으로 구분

 

처음에는 어떻게 풀까 하다가 3월 28일이면 1월 2월의 일을 전부 다 더하고 28일을 더 한 다음 7로 나눠서 나온 값을 배열중에 찾아서 출력하면 될 것 같다.


문제풀이


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

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

        int monthNum = Integer.parseInt(st.nextToken());
        int dayNum = Integer.parseInt(st.nextToken());

        int[] month = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        String[] day = {"SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"};

        int cnt = 0;
        for (int i = 0; i < monthNum; i++) {
            cnt = cnt + month[i];
        }
        cnt = cnt + dayNum;
        sb.append(day[cnt % 7]);
        System.out.println(sb);
    }
}
int[] month = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

여기서 0부터 시작하는 3월을 입력하면 3월의 일수는 더하면 안되기 때문에 처음에는 month[0]에는 0을 집어 넣어서 3월 까지면 2월의 일까지만 더해지게끔 했습니다.

Comments