본문 바로가기
알고리즘/BOJ

[BOJ / 백준] 5635번 생일 python / 파이썬 문자열 정렬 구현

by seohmoon 2022. 6. 23.

출처 : https://www.acmicpc.net/problem/5635

 

5635번: 생일

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

www.acmicpc.net


나이가 적은 사람의 이름, 둘째 줄에 가장 나이가 많은 사람의 이름을 각각 for문을 돌면서 찾아준다.

년, 월, 일 순으로 비교해주는데 상위 항목의 값이 같을 때만 하위 항목의 값을 비교해줬다.

 

사람의 이름은 각각의 리스트의 0번째에 담아주고 *으로 출력

 

# BOJ5635 생일

N = int(input())

young_year = 1989 # 문제에서 주어진 범위가 1990까지
young_month = 0
young_date = 0

old_year = 2011 # 문제에서 주어진 범위가 2010까지
old_month = 13
old_date = 32

young = [""]
old = [""]

for i in range(N):
    a, b, c, d = map(str, input().split())
    b = int(b)
    c = int(c)
    d = int(d)

    if d > young_year:
        young_year = d
        young_month = c
        young_date = b
        young[0] = a
    elif d == young_year:
        if c > young_month:
            young_year = d
            young_month = c
            young_date = b
            young[0] = a
        elif c ==young_month:
            if b > young_date:
                young_year = d
                young_month = c
                young_date = b
                young[0] = a

    if d < old_year:
        old_year = d
        old_month = c
        old_date = b
        old[0] = a
    elif d == old_year:
        if c < old_month:
            old_year = d
            old_month = c
            old_date = b
            old[0] = a
        elif c == old_month:
            if d < old_date:
                old_year = d
                old_month = c
                old_date = b
                old[0] = a

print(*young)
print(*old)

댓글