곽로그

[백준 2753] 윤년 본문

알고리즘/백준

[백준 2753] 윤년

일도이동 2019. 10. 27. 22:04
반응형

 

 

2753번: 윤년

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

www.acmicpc.net

접근방법: 

처음엔 "4의 배수는 끝에 두자리수가 4의 배수이면 된다"로 접근했다. 그러고 400의 배수는 "4의 배수이면서 100의 배수" 이렇게 접근하니까 100, 500 여기서 막혔다. 그냥 %4 %100 %400 으로 풀면 된다. 어려운 접근방법에 꽃혀서 쉬운 방법을 생각하지 못했다. 

 

package leapYear;

import java.util.Scanner;

public class Main {

	public static boolean fourMultiple(int num) {
		if (num % 4 == 0) {
			return true;
		}
		return false;

	}

	public static boolean hundredMultiple(int num) {
		if (num % 100 == 0) {
			return true;
		}
		return false;

	}

	public static boolean fourhundredMuptiple(int num) {
		if(num%400==0) {
			return true;
		}
		else {
			return false;
		}
	}

	public static void main(String[] args) {
		// (4배수 && 100의 배수가 아님) || (400의 배수)

		Scanner in = new Scanner(System.in);
		int num = in.nextInt();
		
		
		  if ((fourMultiple(num) && !hundredMultiple(num)) || fourhundredMuptiple(num)){
			  System.out.println(1);
		  } 
		  else { 
			  System.out.println(0);
		  }
		 

		
	}
}
반응형

'알고리즘 > 백준' 카테고리의 다른 글

다시 풀어볼 백준문제  (0) 2019.11.15
[백준 2884] 알람시계  (0) 2019.10.29
[백준 1011] Fly me to the Alpha Centauri  (0) 2019.05.15
[백준 1475] 방 번호  (0) 2019.05.13
[백준 10250] ACM호텔  (0) 2019.05.07
Comments