본문 바로가기

백준 코딩테스트/if문 + for문

[백준] [자바] 2753번 : 윤년 (2단계 : if문제)

728x90
728x90

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

 

2753번: 윤년

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

www.acmicpc.net


= 문제 =


=문제푸는 팁=

n의 배수 확인하는 방법은 변수%n의 나머지가 0이다.

 

= 해설 =

1 단계 : 4의 배수 - if ( a%4==0 ) / "이면서"로 한 단계 더 if 사용 

2 단계 : 4의 배수이면서 400의 배수일 때 - if (a%400 == 0 ) 또는 이기 때문에, 2-3에서 else if사용 

3 단계 : 4의 배수이면서 100의 배수일 경우 - else if ( a%100 == 0 ) (+a%100!=0으로 하면, 출력값은 1로)

4 단계 : 2단계 조건식 나머지 - else로 0 출력 (2-2단계에서 +방법으로 했으면 여기선 1 출력)

5 단계 : 1 단계 조건식 나머지 - else로 0 출력

 

이러한 구조로 본다.

package backjun;

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
	
	Scanner scan = new Scanner(System.in);
	
	int a = scan.nextInt();
	
	if(a%4==0) {
	if(a%400==0) System.out.println("1");
		else if (a%100==0) System.out.println("0");
		else System.out.println("1");
		}
	else System.out.println("0");
    
    scan.close();
	}
}

< 삼항 연산자 해설 >
package backjun;

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
	
	Scanner scan = new Scanner(System.in);
	
	int a = scan.nextInt();
	
	System.out.println((a%4==0)?((a%400==0)?"1":(a%100==0)?"0":"1"):"0");
    
    scan.close();
	}
}

728x90