관리 메뉴

솜씨좋은장씨

[BaekJoon] 5635번 : 생일 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 5635번 : 생일 (Python)

솜씨좋은장씨 2021. 11. 17. 11:17
728x90
반응형

오늘은! 생일을 맞아! 코딩 1일 1문제! 백준의 생일을 풀어보았습니다.

 

5635번: 생일

어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오.

www.acmicpc.net

👨🏻‍💻 문제 풀이

이름, 일, 월, 년도 목록을 쭉 입력 받으면 

그 목록 중에서 가장 어린 사람, 가장 나이든 사람의 이름을 차례대로 출력하는 문제입니다.

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

birthday_infos = []
for _ in range(int(input())):
    birthday_info = input().split()
    birthday_infos.append(birthday_info)

먼저 예제 입력을 보고 이름, 일, 월, 년도 목록을 쭉 입력 받습니다.

check_list = []
for birthday_info in birthday_infos:
    birthday_datetime = datetime(year=int(birthday_info[-1]), 
                                 month=int(birthday_info[-2]), 
                                 day=int(birthday_info[-3]))
    check_list.append((birthday_info[0], birthday_datetime))

입력받은 정보 중에 일, 월, 년도를 활용하여 datetime 객체를 생성합니다.

생성한 다음 check_list에 (이름, datetime 객체) 이렇게 추가하도록합니다.

check_list = sorted(check_list, key=lambda x: x[1])

그 다음 datetime객체를 기준으로 오름차순 정렬하도록 합니다.

check_list[-1][0], check_list[0][0]

마지막으로 맨 마지막 사람의 이름, 맨 첫번째 사람의 이름을 출력하면 끝!

입니다.

 

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

👨🏻‍💻 코드 ( Solution )

from datetime import datetime

def happy_birthday(birthday_infos):
    check_list = []
    for birthday_info in birthday_infos:
        birthday_datetime = datetime(year=int(birthday_info[-1]), 
                                     month=int(birthday_info[-2]), 
                                     day=int(birthday_info[-3]))
        check_list.append((birthday_info[0], birthday_datetime))
        
    check_list = sorted(check_list, key=lambda x: x[1])
    
    return check_list[-1][0], check_list[0][0]

if __name__ == "__main__":
    birthday_infos = []
    for _ in range(int(input())):
        birthday_info = input().split()
        birthday_infos.append(birthday_info)
        
    name_list = happy_birthday(birthday_infos)
    
    for name in name_list:
        print(name)
 

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