https://www.acmicpc.net/problem/2753
2753번: 윤년
연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서
www.acmicpc.net
💡 주의 사항
윤년인 경우는 두 가지다.
1. 4의 배수이면서 100의 배수가 아닐 때
2. 400의 배수일 때
경우의 수를 잘 정리를 해놓고 코드를 짜는 것이 중요하다.
🗒 풀이
java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int year = sc.nextInt();
System.out.println((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)? "1" : "0");
sc.close();
}
}
- 조건문이 복잡하지가 않아서 삼항연산자를 사용했다. 조건문이 복잡한 경우 삼항연산자를 사용한다면 가독성이 좋지 않을 수 있으니 주의할 것.
- 자바의 삼항 연산자의 경우, (조건) ? "조건이 참인 경우" : "조건이 참이 아닐 경우" 로 나뉘어진다.
- 주의사항에서 정리한 경우를 정의한다. 1의 경우 ~이면서 라는 조건이 들어가야 하므로 and의 &&, 1과 2는 1또는 2의 관계이므로 or의 || 연산자가 들어갔음을 확인할 수 있다
python
year = int(input())
print('1' if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) else '0')
- 파이썬의 삼항 연산자의 경우, '조건이 참인 경우' if (조건) else '조건이 참이 아닐 경우' 로 작성한다.
- 파이썬의 경우, 자바에서 쓰이는 && 대신 and 로, || 대신 or를 씀에 주의할 것
'알고리즘' 카테고리의 다른 글
[백준] 2920번: 음계 (java, python) (0) | 2022.07.11 |
---|---|
[백준] 2908번: 상수(java, python) (0) | 2022.07.11 |
[백준] 2742번: 기찍 N (java, python) (0) | 2022.07.07 |
[백준] 2741번: N 찍기 (java, python) (0) | 2022.07.07 |
[백준] 2739번: 구구단 (java, python) (0) | 2022.07.07 |