알고리즘/백준

[백준] 2753 - 윤년

leegeonwoo 2023. 10. 15. 00:52

• 문제

입력된 연도가 윤년이면 1, 윤년이 아니면 0을 출력하는 프로그램 문제이다.


• 풀이

윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.

이 문장을 if문을 사용하여 조건식으로 구현만 해주면 된다. 문장 하나하나씩 식으로 만들어보자 !

 

먼저 연도가 4의 배수라는 문장은 year % 4 == 0이 된다. 4의 배수는 4로 나눴을때 나머지가 0이 되기때문이다.

두번째 문장인 연도가 100의 배수가 아닐 때는 year % 100 != 0으로 식을 세울수 있다.

마지막 문장인 400의 배수일 때는 첫번째문장과 같이 year % 400 == 0이 된다. 위 세가지의 문장을 조건식으로 알맞게 연결해주기만 하면된다.

 

논리연산자를 사용할 때는 '이고', '이면서'로 문장을 연결할 때는 AND(&&)연산자를

'이거나', '또는' 을 사용할 때는 OR(||)연산자를 사용해주면된다.

AND연산자는 양쪽의 식이 모두 참일경우 true를 반환하고,

OR연산자는 양쪽의 식 둘 중 하나만 참이면 true를 반환한다.

 

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int year = sc.nextInt();
		
		if(year%4 == 0 && (year%100 != 0 || year%400 == 0)) {
			System.out.println(1);
		}
        else
			System.out.println(0);
	}
}

 

위 코드를 삼항 연산자를 사용하여 좀 더 간단하게 코드를 짜보겠다.

 

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)); 
	}
}

삼항연산자는 ? 이전에 조건식을 넣고 : 를 기준으로 왼쪽은 true일때의 값을, 오른쪽은 false일때의 값을 넣는다.

코딩을 하다보면 삼항 연산자를 유용하게 사용하여 코드의 가독성을 높일 수 있는 상황이 종종 나올 것 이다.


마무리

  1. 논리 연산자의 사용법을 알 수 있었다.
  2. 삼항 연산자는 어떻게 사용되는지 알 수 있었다.
728x90
댓글수1