λ¬Έμ
μ°λκ° μ£Όμ΄μ‘μ λ, μ€λ μ΄λ©΄ 1, μλλ©΄ 0μ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ€λ μ μ°λκ° 4μ λ°°μμ΄λ©΄μ, 100μ λ°°μκ° μλ λ λλ 400μ λ°°μμΌ λμ΄λ€.
μλ₯Ό λ€μ΄, 2012λ μ 4μ λ°°μμ΄λ©΄μ 100μ λ°°μκ° μλλΌμ μ€λ μ΄λ€. 1900λ μ 100μ λ°°μμ΄κ³ 400μ λ°°μλ μλκΈ° λλ¬Έμ μ€λ μ΄ μλλ€. νμ§λ§, 2000λ μ 400μ λ°°μμ΄κΈ° λλ¬Έμ μ€λ μ΄λ€.
μ λ ₯
첫째 μ€μ μ°λκ° μ£Όμ΄μ§λ€. μ°λλ 1λ³΄λ€ ν¬κ±°λ κ°κ³ , 4000λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄λ€.
2000
μΆλ ₯
첫째 μ€μ μ€λ μ΄λ©΄ 1, μλλ©΄ 0μ μΆλ ₯νλ€.
1
βοΈ νμ΄
μ€λ μ μ°λκ° 4μ λ°°μμ΄λ©΄μ, 100μ λ°°μκ° μλ λ λλ 400μ λ°°μμΌ λμ΄λ€.
λΌλ 쑰건μ λ£κ³ ,
(year % 400 ==0 || year % 4 == 0 && year % 100 !=0)
λΌλ μμ μΈμ λ€. 400μ λ°°μμΌλ νλ² κ±°λ₯΄κ³ , κ·Έλ€μμ λ€λ₯Ό μ²λ¦¬νλ©΄ λμ§ μμκΉ μΆμλ€.
κ·Έλ¦¬κ³ μ΄ μμλ₯Ό
(year % 4 == 0 && year % 100 !=0 || year % 400 ==0)
μ΄λ κ² λ°κΏλ 보μλ€.
λ΄κ° μ΄λ κ² μ΄λ¦¬μ 리 λ°κΏλ³Έ μ΄μ λ λ°λ‘
"λ¨μΆνκ° short circuit"
λλ¬Έμ΄λ€.
πλ¨μΆνκ° short circuit
- && : μμ κ²μ΄ falseλ©΄ λ€μ κ²μ νκ°ν νμ μμ
- || : μμ κ²μ΄ trueλ©΄ λ€μ κ²μ νκ°ν νμ μμ
=> λ°λΌμ μ°μ° λΆνκ° μ μ μ½λλ₯Ό μμ λ£μΌλ©΄ 리μμ€λ₯Ό μ μ½ν μ μλ€.
μ΄λ κ² μμλ§ λ°κΏμ£Όμλλ°λ μκ° κ²°κ³Όκ° λ€λ¦μ μ μ μλ€!
- year % 400 == 0 μ μμ λ£λ κ²½μ°
400μΌλ‘ λλμ΄λ¨μ΄μ§λ κ²½μ°κ° λλ¬ΌκΈ° λλ¬Έμ λλΆλΆμ κ²½μ° λ λ²μ§Έ 쑰건κΉμ§ νκ°κ° μ§νλλ€.
=> κ·Έλμ μ°μ°μ΄ λ§μμ§ κ°λ₯μ±μ΄ ν¬λ€! (ν κ·Έλ¬λ€)
- year % 4 == 0 μ μμ λ£λ κ²½μ°
4λ‘ λλμ΄λ¨μ΄μ§λ κ²½μ°κ° λ λ§κΈ° λλ¬Έμ 첫 λ²μ§Έ 쑰건μμ μ°Έμ΄ νμ λκ±°λ,
&& μ°μ°μ μν΄ νκ°κ° λ κ°λ₯μ±μ΄ λμ
=> μ΄κ² μ’ λ λΉ λ₯Όμ μλ€!
μ¦, μ΅μ νλ₯Ό μν΄μλ λ μμ£Ό μ°Έμ΄ λλ 쑰건μ μμ λλκ²μ΄ μ’λ€.
βοΈ 172ms λ΅
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int year = scanner.nextInt();
if (year % 4 == 0 && year % 100 !=0 || year % 400 ==0) {
System.out.println('1');
} else {
System.out.println('0');
}
}
}