백준1208

송민지·2025년 8월 12일

알고리즘

목록 보기
8/10

풀이 과정

  1. 2009년 1월 27일까지의 날짜의 합을 구한다
  2. 2008년 12월 27일까지의 날짜의 합을 구한다.
  3. 1에서 2의 값을 빼면 된다.
public class B1308 {
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        int y1 = sc.nextInt();
        int m1 = sc.nextInt();
        int d1 = sc.nextInt();
        int y2 = sc.nextInt();
        int m2 = sc.nextInt();
        int d2 = sc.nextInt();

        int total1 = calcDay(y1, m1, d1);
        int total2 = calcDay(y2, m2, d2);

        if(y2 - y1 > 1000 || y2 - y1 == 1000 && (m1 < m2 || m1 == m2 && d1 <= d2)) System.out.println("gg");
        else System.out.println("D-" + (total2 - total1));
    }

    static int calcDay(int y, int m, int d){
        int[] day = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

        int days = 0;

        for(int i = 1; i < y; i++){
            days += 365 + checkYear(i);
        }

        for(int i = 1; i < m; i++){
            if(i == 2) days += checkYear(y);
            days += day[i];
        }

        days += d;

        return days;
    }

    static int checkYear(int y){
        if((y % 4 == 0 && y % 100 != 0) || y % 400 == 0) return 1;
        else return 0;
    }
}
profile
항상 밝게

0개의 댓글