반응형
문제
https://www.acmicpc.net/problem/2753
풀이
- 윤년은 연도가 4의 배수이면서( && ), 100의 배수가 아닐 때 또는( || ) 400의 배수일 때이다.
위의 내용에 따라 코드를 작성해보았다.
틀린 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int year = scan.nextInt();
if (year % 4 == 0 || year % 400 == 0) {
System.out.println("1");
} else if (year % 100 == 0) {
System.out.println("0");
} else {
System.out.println("0");
}
scan.close();
}
}
(year % 100 == 0)을 else if로 작성하게 되면 if문의 조건은 무시되기 때문에 4의 배수이면서 100의 배수일 때 1이 출력되어야하는데 0이 출력되므로 오답이다.
다시 짠 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int year = scan.nextInt();
if (year % 4 == 0 && (year % 100 !=0 || year % 400 == 0)) {
System.out.println("1");
} else {
System.out.println("0");
}
scan.close();
}
}
논리연산자 &&와 ||를 활용하여 한 줄로 고쳐주었다.
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 2439번 별찍기 - 2 (0) | 2021.11.03 |
---|---|
[백준] 2438번 별찍기 - 1 (0) | 2021.11.01 |
[백준] 10952번 A+B - 5 (0) | 2021.10.22 |
[백준] 2884번 알람 시계 (0) | 2021.10.21 |
[백준] 14681번 사분면 고르기 (0) | 2021.10.21 |