본문 바로가기
알고리즘/CodeUp PS

[CodeUp][Python] 1166번 : 윤년 판별

by 빛밤하늘 2021. 8. 22.
반응형

밑의 링크는 CodeUp에서의 문제 링크입니다.

문제는 링크를 통해서 직접 봐주시길 바랍니다.

 

윤년 판별

윤년이면 "yes"를 출력, 윤년이 아니면 "no"를 출력하시오.

codeup.kr

 

 

 

 

 

 

 

 

주의해야 할 점

알고리즘 문제를 풀다보면 가끔 마주치는 윤년 문제입니다.

제가 지금껏 만났던 윤년 문제들은 이번 문제처럼 모두 윤년의 조건을 따로 제공해줬긴 했습니다.

그래도 혹시나 윤년의 조건이 나오지 않는 경우까지 생각하시는 분들은 따로 외워도 좋습니다.




생각한 풀이 과정

  1. readline을 사용하기 위해 import 합니다.
  2. 해(year)를 뜻하는 정수를 하나 입력합니다. 정수형으로 변환하고, 변수 year에 넣어줍니다.
  3. 윤년의 판단 조건을 조건문으로 만들어봅니다. 먼저 첫 번째 조건인 해인 year의 값이 4의 배수이면서 100의 배수가 아닌 경우를 짜봅니다. year의 값을 4로 나누었을 때 나머지가 0이고 100으로 나누었을 때 0이 아니면 됩니다.
  4. 두 번째 조건인 해인 year의 값이 400의 배수인 경우를 짜봅니다. year의 값을 400으로 나누었을 때 나머지가 0이면 됩니다.
  5. 과정 3, 4번 조건 중에 하나라도 맞다면 입력한 해는 윤년이므로 문자열 'yes'를 출력합니다.
  6. 그 외의 경우에는 입력한 해는 윤년이 아니므로 문자열 'no'를 출력합니다.



 

 

 

 

 

 

제출한 파이썬 코드

# readline을 사용하기 위해 import합니다.
from sys import stdin


# 해(year)를 입력합니다.
# 정수형으로 변환합니다.
year = int(stdin.readline())

# 윤년의 판단 조건을 조건문으로 만들어봅니다.
# 1. 해(year)가 4의 배수이면서 100의 배수가 아닌 경우
# 2. 400의 배수인 경우
# 위의 두 조건 중 하나라도 맞다면
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
    # 입력한 해는 윤년이므로 'yes'를 출력합니다.
    print('yes')
# 그 외의 경우에는
else:
    # 윤년이 아니므로 'no'를 출력합니다.
    print('no')

 

 

 

제출 결과

결과

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글