https://www.acmicpc.net/problem/2753
백준 온라인 저지(BOJ)의 첫 번째 단계인 "if문"의 세 번째 문제이다.
주의해야 할 점이 있다.
바로 윤년의 조건이다.
윤년의 조건으로는 2개가 존재한다.
- 4로 나누어 떨어지는 해는 윤년, 그 밖의 해는 평년으로 한다.
- 100으로 나누어 떨어지지만 400으로 나누어 떨어지지 않는 해는 평년으로 한다.(예: 1900년, 2100년)
이를 통해
임을 알 수 있다.
이를 바로 코드에 적용하면 문제는 쉽게 풀린다.
윤년의 조건을 어떻게 조건식으로 풀어쓰는지가 관건인 문제였다.
- 첫 번쨰 방법 - Scanner
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int y = Integer.parseInt(in.nextLine());
if((y%4 == 0 && y%100 != 0) || (y%400 == 0))
System.out.println(1);
else
System.out.println(0);
}
}
- 두 번째 방법 - BufferedReader
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int y = Integer.parseInt(br.readLine());
if((y%4 == 0 && y%100 != 0) || (y%400 == 0))
System.out.println(1);
else
System.out.println(0);
}
}
성능이 좋지 못한 Scanner대신 BufferedReader를 이용하기 때문에 시간적인 측면에서 첫 번째 방법보다 더 유리하다.
- 느낀 점
자연어로 이루어진 조건들을 조건식으로 바꿔쓰는 능력이 필요하겠다.
'[JAVA] > 자바[JAVA] 백준' 카테고리의 다른 글
BOJ(백준 온라인 저지) 2884번 - 단계별로 풀어보기 with 자바[JAVA] (0) | 2022.01.13 |
---|---|
BOJ(백준 온라인 저지) 14681번 - 단계별로 풀어보기 with 자바[JAVA] (0) | 2022.01.12 |
BOJ(백준 온라인 저지) 9498번 - 단계별로 풀어보기 with 자바[JAVA] (0) | 2022.01.12 |
BOJ(백준 온라인 저지) 1330번 - 단계별로 풀어보기 with 자바[JAVA] (0) | 2022.01.12 |
BOJ(백준 온라인 저지) 10430번 - 단계별로 풀어보기 with 자바[JAVA] (0) | 2022.01.04 |