처음엔 그냥 if문으로 풀었었다.
package prac;
import java.util.Scanner;
public class bj2753 {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
sc.close();
if(i%4==0) {
if(i%400==0) System.out.println("1");
else if(i%100==0) System.out.println("0");
else System.out.println("1");
}
else System.out.println("0");
}
}
그러나 삼항연산자를 이용하면 훨씬 간단하게 가능하다.
import java.util.Scanner;
public class bj2753 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int y = sc.nextInt();
sc.close();
System.out.print((y%4==0)?((y%400==0)?"1":(y%100==0)?"0":"1"):"0");
}
}
이처럼 삼항연산자로 조건을 넣는 법을 공부해야한다.
(문제) 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오.
윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.
예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.
'개발 > Algorithm' 카테고리의 다른 글
[Python] 랜덤 리스트 비교 (0) | 2021.10.16 |
---|---|
[Java] 백준 2292번 벌집 (0) | 2021.09.27 |
[Python] 백준 2292번 벌집 (0) | 2021.09.27 |
[Java] 백준 9498번 삼항연산자로 해결 (0) | 2021.08.31 |
[Java] 설탕배달 (백준 2839번) (0) | 2021.08.30 |
댓글