Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
주어지는 값이 연도이므로 알아보기 쉽게 year로 변수 지정
연도는 정수이므로 sc.nextInt()
로 값을 받음
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 && year % 100 != 0 || year % 400 == 0) { System.out.println("1"); } else { System.out.println("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 || year % 100 != 0 ) { System.out.println("1"); } else { System.out.println("0"); } } }
처음 제출한 코드
왜 틀렸는지 확인해보다가 윤년의 전제 조건 중 하나인 ' 400의 배수일 때 ' 조건식이 빠져있는 것을 확인
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 || year % 100 != 0 ) { System.out.println("1"); } else if (year % 400 == 0){ System.out.println("1"); } else { System.out.println("0"); } } }
수정 후 재제출
또 문제 발생!!!
문제를 다시 차근차근 읽어보다가 4의 배수이면서 100의 배수가 아닐 때 또는 400의 배수일 때라는 문구를 보고 코드를 다시 확인
이면서는 AND 연산자인데 OR 연산자로 구현
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)