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

[CodeUp][Python] 1214번 : 이 달은 며칠까지 있을까?

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

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

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

 

이 달은 며칠까지 있을까?

철수와 영희는 한 사람이 특정 월(month)을 지목하면 나머지 사람이 그 달의 마지막 날이 며칠인지 알아맞히는 게임을 하였다. 두 사람 모두 처음엔 서툴렀지만 게임을 계속하다 보니 금방 익숙해

codeup.kr

 

 

 

주의해야 할 점

1. map, split을 사용하는 입력 방식

실수나 정수인 여러 값들이 입력값일 때,

split 메서드를 사용해 공백이나 어떤 문자를 기준으로 입력값을 여러 값들로 분리하고,

map 내장 함수로 각각의 값들을 int형이나 float형으로

정수, 실수 자료형으로 변환하는 하는 기법은 매우 많이 쓰입니다.

코드 이해부터 하고 나면 다른 문제에서도 외운 듯이 사용해봅시다.

num1, num2 = map(int, sys.stdin.readline().split())

 

2. 윤년의 조건

문제에서는 윤년의 조건을 따로 제시해주었습니다.

윤년 문제들은 웬만하면 윤년의 조건을 제시해주는 문제가 많았던 것 같은데

혹시 조건이 나오지 않을까봐 찜찜한 사람들은 윤년 조건을 외워도 좋습니다.

 

밑의 링크는 코드업에서의 윤년 문제인 1166번을 풀고 해설한 제 블로그에 있는 포스팅입니다.

 

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

밑의 링크는 CodeUp에서의 문제 링크입니다. 문제는 링크를 통해서 직접 봐주시길 바랍니다. 윤년 판별 윤년이면 "yes"를 출력, 윤년이 아니면 "no"를 출력하시오. codeup.kr 주의해야 할 점 알고리즘

brightnightsky77.tistory.com

 

예제 설명

1. 첫 번째 예제

- 입력

2009 10

 

- 출력

31

 

- 설명

입력한 연도, 월은 각각 2009, 10입니다.

10월은 윤년과 상관없으므로 그냥 10월의 마지막날인 31을 출력합니다.

 

생각한 풀이 과정

1월부터 12월까지의 마지막 날들을 리스트로 만들어둡니다.

2월은 28일로 리스트에 넣어줍니다.

 

연도와 월을 입력합니다.

입력한 월이 2월이 아니라면, 윤년과 상관없으므로

그냥 입력한 월의 마지막 날을 위에서 만든 리스트에서 찾아 출력합니다.

 

입력한 월이 2월이라면 윤년인지를 파악해야합니다.

입력한 월이 2월이고 윤년의 조건에 해당한다면

2월의 마지막 날인 28에 1을 더한 값인 29를 출력합니다.

 

입력한 월이 2월이고 윤년의 조건에 해당하지 않는다면

2월의 마지막 날인 28을 출력합니다.

 

 

제출한 파이썬 코드

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


# 월별 마지지 막날을 저장한 리스트 변수 months_days를 선언합니다.
# 2월은 28일로 지정해줍니다.
months_days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

# 연도, 월을 공백으로 구분해 입력합니다.
# 각각 int형으로 변환합니다.
year, month = map(int, stdin.readline().split())

# 입력한 월이 2월이 아니라면
if month != 2:
    # 입력한 월에 해당하는 마지막 날을 months_days에서 찾아 출력합니다.
    print(months_days[month - 1])
# 입력한 월이 2월일 때
# 윤년에 해당하는 조건인
# 1. 400의 배수인 해이거나,
# 2. 4의 배수인 해들 중 100의 배수가 아닌 해라면
elif year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
    # 윤년이므로 2월의 마지막 날인 28에 1을 더해 29를 출력합니다.
    print(months_days[1] + 1)
# 윤년이 아니라면
else:
    # 2월의 마지막 날을 출력합니다.
    print(months_days[1])

 

제출 결과

CodeUp 1214번 : 이 달은 며칠까지 있을까?에서 코드 제출 결과
CodeUp 1214번 : 이 달은 며칠까지 있을까?에서 코드 제출 결과

 

 

 

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

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

※ 공감 버튼과 구독 버튼도 잊지 말고 꾹 눌러주시면 감사하겠습니다~👍👍

반응형

댓글