[백준 2753 파이썬] 윤년 - 조건문 (if, else 중첩 feat. 인셉션)
안녕하세요.
이번 문제는 '윤년'을 판별하는 문제입니다. 윤년은 4년마다 돌아오는 2월이 29일까지 있는 연도죠? 그런데 100의 배수 년도는 안되고 예외적으로 400의 배수 년도는 해당하는 복잡한 규칙이 있었네요!
이렇게 무슨경우 - 이런경우 - 저런경우가 중첩되는경우, 이제부터는 영화 '인셉션'을 떠올려주세요. 꿈 속의 꿈 속의 꿈 속..으로 들어간 경우 마지막 꿈부터 깨면서 나오는 것을 상상하시면 될 것 같습니다. 꿈에 들어가는게 if문, 나오는게 else문이라고 생각하면 이해가 잘 되실까요? 아무튼 문제를 보시죠!
문제 분석
앞의 '두 수 비교하기' 문제나 '시험 성적' 문제는 '작거나 / 같거나 / 크거나' 또는 '100~90~80~70~60~0' 과 같이 구간을 나누었죠? 아래와 같이 직선 상에 구간을 표현할 수 있을 것 같습니다.
하지만, 이번 '윤년' 문제는 직선 상의 구간을 나누는 것이 아닌 '포함 관계'를 표현해야 합니다. 아래 도식과 위의 도식을 비교해 봅시다!
앞서 인셉션을 떠올리자고 했었죠? 첫번째 꿈은 4의 배수입니다. 두번째 꿈은 100의 배수, 세번째 꿈은 400의 배수네요. 마지막 세번째 꿈에서 3가지 조건을 모두 만족했을 때 출력값을 지정하고 else문으로 차례대로 빠져나오면서 역시 출력값을 지정해 주면 됩니다!
(4배수 집합 - (100배수 집합 - 400배수 집합))
답안
위에서 설명드린 내용을 코드로 옮겨보겠습니다. 주의할 점은 if문 안의 if문은 공백 4칸을 들여쓰기해야 하며, else문은 가장 안쪽의 if문부터 순차적으로 닫아주어야 합니다. 비교 연산자는 '==' 과 같이 등호 2개를 붙여서 사용합니다. 하나만 사용시에는 변수를 지정하게 되니 의도하지 않은 결과나 에러가 발생할 수 있습니다.
코드에 대한 설명은 주석 (# 이하) 으로 삽입했습니다. 주석은 파이썬에서 코드로 인식하지 않아 필요한 행에 설명을 추가할 수 있습니다.
제출 결과를 확인하고,
마치도록 하겠습니다.
읽어주셔서 감사합니다.
'파이썬 > BOJ_조건문' 카테고리의 다른 글
[백준 2525 파이썬] 오븐 시계 - 조건문 (if, else, 시간 분 계산) (0) | 2022.12.30 |
---|---|
[백준 2884 파이썬] 알람 시계 - 조건문 (if, else, 시간 분 계산) (0) | 2022.12.30 |
[백준 14681 파이썬] 사분면 고르기 - 조건문 (if, else 2x2 feat. 동전 던지기) (0) | 2022.12.28 |
[백준 9498 파이썬] 시험 성적 - 조건문 (if, elif, else) (0) | 2022.12.26 |
[백준 1330 파이썬] 두 수 비교하기 - 조건문 (if, elif, else) (0) | 2022.12.25 |
댓글