![[백준] 2753 - 윤년](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcehi52%2FbtsytdzeDqp%2FCqKXI3rtN5Vq63shjtASg1%2Fimg.png)
• 문제

입력된 연도가 윤년이면 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일때의 값을 넣는다.
코딩을 하다보면 삼항 연산자를 유용하게 사용하여 코드의 가독성을 높일 수 있는 상황이 종종 나올 것 이다.
•마무리
- 논리 연산자의 사용법을 알 수 있었다.
- 삼항 연산자는 어떻게 사용되는지 알 수 있었다.
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 2884 - 알람 시계 (1) | 2023.10.17 |
---|---|
[백준] 14681 - 사분면 고르기 (0) | 2023.10.16 |
[백준] 9498 - 시험성적 (0) | 2023.10.15 |
[백준] 1330 - 두 수 비교하기 (0) | 2023.10.15 |
[백준] 11382 - 꼬마 정민 (1) | 2023.10.14 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!