본문 바로가기

BackEnd/Java

[JAVA] 조건문, 반복문을 이용한 문제 풀이 1(윤년 계산기)

728x90
반응형

 

목차

                                                                                                                           

1. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 1(윤년 계산기)

2. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 2(주사위 게임)

3. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 3(배수 판별기)

4. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 4(청구 금액 계산기)

5. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 5(다독왕)

6. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 6(피보나치 수)

7. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 7(출입증)

8. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 8(방정식)

9. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 9(숫자 맞추기 게임)

10. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 10(만원의 행복)

11. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 11(은행)

                                                                                                                           

 

 

자바의 조건문, 반복문을 이용한 문제 풀이를 진행해보겠습니다~

 

 

문제 1) 윤년 계산기
윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다.

예시) 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.

 

 

👉 출력방법

1. 연도를 입력 받는다.
2. 입력받은 연도가 윤년이면 "윤년입니다."를 출력
3. 윤년이 아니라면 "윤년이 아닙니다."를 출력

 

 

👉  문제 풀이를 위한 Flow Chart

 


👉  문제 해답 코드

import java.util.Scanner;

public class LeapYear {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		System.out.print("연도를 입력해 주세요 : ");
		int year = sc.nextInt();
		
		if(year % 4 == 0) {
			if(year % 100 == 0) {
				if(year % 400 == 0) {
					System.out.println("윤년입니다.");
				} else {
					System.out.println("윤년이 아닙니다.");
				}
			} else {
				System.out.println("윤년입니다.");
			}
		} else {
			System.out.println("윤년이 아닙니다.");
		}
		
		sc.close();
	}
}

 

 

 

👉  코드 해설

1. 입력을 위한 java.util의 Scanner 클래스를 가져온다.
2. 인스턴스 생성 후 연도를 입력받고 변수 year에 저장한다.
3. 조건문을 통해 4의 배수인지 확인한다.
 3-1) 참이라면, 윤년인지 확인을 위해 100의 배수인지 확인한다.
  3-1-1) 참이라면, 400의 배수인지 확인한다.
   3-1-1-1) 참이라면, 4, 100, 400의 배수이므로 윤년이다.
   3-1-1-2) 거짓이라면, 4, 100의 배수이므로 윤년이 아니다.
  3-1-2) 거짓이라면, 4의 배수이고 100의 배수가 아니므로 윤년이다.
 3-2) 거짓이라면, 4의 배수가 아니므로 윤년이 아니다.

 

 

문제 풀이 시 위의 해설과 같이 if문을 3번을 사용해서 문제를 해결했습니다.

좀 더 간단하게 할 수 있는 방법이 확실하게 생각나지않아 위와 같이 해결했지만, 좀 더 간단하게 풀이할 수 있는 방법을 고민해봐야겠어요,,ㅎㅎ

 

혹시나 코드를 보고 좀 더 간단하게 풀이하실 수 있는 분들은 답글 부탁드려요!!!!

 

많은 분들의 피드백은 언제나 환영합니다!  많은 댓글 부탁드려요~~

 

728x90
반응형