본문 바로가기

카테고리 없음

[백준 BAEKJOON / 자바 JAVA] 2753번 : 윤년

Q) BAEKJOON / JAVA / 2753 : 윤년

https://www.acmicpc.net/problem/2753

 

2753번: 윤년

연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서

www.acmicpc.net


※ if 조건문

 - 가장 기본적인 조건문 이며, 조건에 따라 코드의 실행 흐름을 다르게 동작하도록 제어하는 문장입니다.

if(조건문 1) {
	실행문 1;	//조건문 1이 true일 때 실행
}else if(조건문 2) {
	실행문 2;	//조건문 2가 true일 때 실행
}else {
	실행문 3;	//조건문 1과 2가 false일 때 실행
}

 

※ 삼항연산자

 - 조건식의 true / false에 따라 반환 값을 달리하며, 중첩사용 또한 가능합니다.

조건식 ? true 반환 값 : false 반환 값

 

A)

 - [1] Scanner

import java.util.Scanner;

public class Main {
	public static void main(String args[]) {
		
		//스캐너 선언
		Scanner sc = new Scanner(System.in);
		
		//nextInt()로 정수형 변수에 저장
		int year = sc.nextInt();
		
		
		//if 조건문 활용
		
		//윤년 이면 1, 아니면 0
		//1) 4의 배수 인지 여부
		//2) 4의 배수라면 100의 배수 인지 여부
		//3) 100의 배수라면 400의 배수인지 여부
		if(year % 4 == 0) {
			if(year % 100 == 0) {
				if(year % 400 == 0) {
					System.out.println("1");
				}else {
					System.out.println("0");
				}
			}else {
				System.out.println("1");
			}
		}else {
			System.out.println("0");
		}
		
		//스캐너 종료
		sc.close();
		
	}
	
}

 

 - [2] BufferedReader

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String args[]) throws NumberFormatException, IOException {
		
		//bufferedReader 선언
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		//readLine()으로 행 읽어오기
		//parstInt로 정수형으로 변환 후 저장
		int year = Integer.parseInt(br.readLine());  
		
		//윤년은 1, 아니면 0
		//삼항연산자 사용
		//1) 4의 배수 여부
		//2) 100의 배수 여부
		//3) 400의 배수 여부
		String yoonyear = (year % 4 == 0) ? (year % 100 == 0) ? (year % 400 == 0) ? "1" : "0" : "1" : "0";
		
		//출력
		System.out.println(yoonyear);
	}
	
}