-
[백준] 2753번 윤년 - JAVA백준 문제 풀이/JAVA 2023. 5. 30. 14:12
문제
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.
입력
첫째 줄에 연도가 주어진다. 연도는 1보다 크거나 같고, 4000보다 작거나 같은 자연수이다.
더보기2000
1999
출력
첫째 줄에 윤년이면 1, 아니면 0을 출력한다.
더보기1
0
풀이
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int year = sc.nextInt(); if(year%4 == 0){ if(year%100 != 0){ System.out.println("1"); } else if(year%400 == 0){ System.out.println("1"); } else{ System.out.println("0"); } } else{ System.out.println("0"); } } }
1. import java.util.Scanner;
java에서는 Scanner 클래스를 사용하여 값을 입력받습니다.
Scanner은 java.util 패키지에 포함되어 있기 때문에 java.util을 import 해줘야 Scanner를 사용할 수 있습니다.
따라서 코드 맨 위에 'import java.util.Scanner'를 입력해 줍니다.
2. java에서는 Scanner 클래스를 사용하여 값을 입력받습니다.
Scanner은 java.util 패키지에 포함되어 있기 때문에 java.util을 import 해줘야 Scanner를 사용할 수 있습니다.
따라서 코드 맨 위에 'import java.util.Scanner'를 입력해 줍니다.
3. int year = sc.nextInt();
연도(year)를 정수형으로 입력받습니다.
Scanner 클래스 메소드에는 여러 가지가 있지만 정수형을 입력받을 것이기 때문에 'sc.nextInt()'로 int를 읽어옵니다.
4. if(year%4 == 0)
윤년의 조건 중에 일단 입력받은 연도가 '4의 배수이면서' 이기 때문에 year를 4로 나누었을 때 나머지 값이 0인지 조건을 검사합니다.
5. if(year%100 != 0){ System.out.println("1"); }
중첩 if문으로 if문 안의 if문이 있는 것을 뜻합니다. 윤년의 조건이 '4의 배수이면서 100의 배수가 아닐 때'이기 때문에
중첩 if문을 사용하여 연도가 4의 배수가 맞다면 100의 배수가 아닌지 확인합니다.
여기에서 '!='은 같지 않다는 의미로 year를 100으로 나누었을때 0이 아니라면 100의 배수가 아니라는 뜻입니다.
6. else if(year%400 == 0){ System.out.println("1"); }
윤년인지 확인하는 조건이 '연도가 4의 배수이면서 100의 배수가 아닐때 또는! 400의 배수일 때'이기 때문에
중첩 if문으로 'year%100 != 0' 조건이 만족하지 않는다면 year가 400의 배수인지 확인합니다.
7. else{ System.out.println("0"); }
중첩 if문에서 4의 배수이지만 'year%100 != 0' 조건과 'year%400 == 0' 조건을 모두 만족하지 못하는 경우
윤년이 아니기때문에 0을 출력합니다.
8. else{ System.out.println("0"); }
4의 배수가 아닌 경우 윤년의 조건과 맞지 않기 때문에 4의 배수가 아닌 모든 연도는 0을 출력합니다.
'백준 문제 풀이 > JAVA' 카테고리의 다른 글
[백준] 2884번 알람 시계 - JAVA (0) 2023.06.01 [백준] 14681번 사분면 고르기 - JAVA (1) 2023.06.01 [백준] 9498번 시험 성적 - JAVA (0) 2023.05.30 [백준] 1330번 두 수 비교하기 - JAVA (0) 2023.05.30 [백준] 10172번 '개' 출력 - JAVA (0) 2023.05.26