-
백준 2753번 윤년카테고리 없음 2021. 7. 14. 15:37
조건 : 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때
-> 4의 배수 && 100의 배수가 아님
-> 또는( || )
-> 400의 배수임
나는 조건을 이렇게 해석해서 if문에 이대로 조건식을 넣었다.
(year % 4 == 0 && year % 100 != 0)|| year % 400 == 0
다른 풀이들을 보니 여러가지 방법이 있었다.
year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)
if(year % 4 == 0) { if(year % 400 == 0) --> 4의 배수이면서 400의 배수인 경우 1 출력 else if(year % 100 == 0) --> 4의 배수이면서 100의 배수인 경우 0 출력 else --> 4의 배수인 경우 1 출력 } else { --> 4의 배수가 아닌 경우 0 출력 }
if(year % 4 == 0) { //4의 배수이면서 if(year % 100 != 0 || year % 400 == 0) { //100 배수가 아니거나, 400의 배수이면 --> 1 출력 } else { //100의 배수이고 400의 배수가 아닌 경우 } } else { // 4의 배수가 아니면 --> 0 출력 }
삼항연산자
System.out.println((year % 4 == 0) ? ((year % 400 == 0) ? "1" : (year % 100 == 0)? "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 && year % 100 != 0)|| year % 400 == 0) { System.out.println("1"); } else { System.out.println("0"); } } }
이 풀이가 메모리와 시간이 썩 좋게 나오지는 않았다.