관리 메뉴

솜씨좋은장씨

[BaekJoon] 2139번 : 나는 너가 살아온 날을 알고 있다 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 2139번 : 나는 너가 살아온 날을 알고 있다 (Python)

솜씨좋은장씨 2021. 9. 12. 00:30
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 나는 너가 살아온 날을 알고 있다 입니다.

백준의 2139번 나는 너가 살아온 날을 알고 있다 문제를 파이썬으로 풀이하였습니다.

 

2139번: 나는 너가 살아온 날을 알고 있다

우리는 일상생활에서 휴가 일수를 계산하는 것 처럼 두 날짜 사이의 기간을 계산해야 하는 경우가 많다. 이때, 계산을 하는 가장 간단한 방법은 적당한 날짜를 잡은 뒤 계산할 날짜가 될 때까지

www.acmicpc.net

👨🏻‍💻 문제 풀이

일, 월, 년도 의 값을 입력받으면 해당 년도의 1월 1일 부터 입력 받은 날까지 몇 일이 지났는지를 구하는 문제입니다.

이 문제는 datetime을 활용하면 정말 쉽게 풀 수 있습니다.

입력 받은 일, 월, 년도의 값을 datetime에 넣어 datetime 값으로 만들어줍니다.

input_day = datetime.datetime(year=year, month=month, day=day)

그리고 기준이 되는 날짜도 입력받은 년도를 활용하여 datetime값으로 만들어줍니다.

std_day = datetime.datetime(year=year, month=1, day=1)

여기서 input_day에서 std_day를 빼면 두 날짜 사이에 몇 일이 있는지 값이 나옵니다.

datetime_info = input_day - std_day

여기서 days에 그 값이 저장되어있는데 이는 우리가 원하는 결과에서 하루가 모자란 값이므로 +1 해줍니다.

datetime_info.days + 1

전체 코드는 아래를 참고해주세요.

👨🏻‍💻 코드 ( Solution )

import datetime

def calculate_live_day(year, month, day):
    input_day = datetime.datetime(year=year, month=month, day=day)
    std_day = datetime.datetime(year=year, month=1, day=1)
    
    datetime_info = input_day - std_day
    
    return datetime_info.days + 1

if __name__ == "__main__":
    while True:
        day, month, year = map(int, input().split())
        
        if day == 0 and month ==0 and year == 0:
            break
        print(calculate_live_day(year, month, day))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments