백준 BAEKJOON 9339번 마라토너 [PYTHON/파이썬]

문제 출처 (BRONZE Ⅰ)

https://www.acmicpc.net/problem/9339

 

 

 

 

 

풀이

대회 참가자들의 기록을 for 문으로 순서대로 입력받으면서 기록을 분으로 통일시키는 작업을 먼저 했다.

그리고 학원 수강생인지, 기록이 6시간 이하인지 if 문에 and를 사용하여 확인했다.

인증서를 받는 학생의 수를 +1 해주고 기록이 좋은 수강생의 참가 번호와 기록을 경신해 줬다.

 

 

 

 

 

코드

T = int(input())

for _ in range(T):
    K = int(input())  # 수강생 수
    K_Number = list(map(int, input().split()))  # 수강생의 참가 번호
    N = int(input())  # 대회 참가자 수

    record_time = 1441  # 24시간 정도의 최대값 설정
    receive_certificate = 0

    for _ in range(N):
        n, h, m = map(int, input().split())

        if h == m == -1:  # 대회를 중간에 포기한 경우는 continue
            continue

        record = (h * 60) + m  # 분으로 통일

        if n in K_Number and record <= 360:
            receive_certificate += 1

            if record < record_time:
                recorder = n  # 기록 좋은 수강생의 참가 번호 저장
                record_time = record  # 기록 갱신

    print(recorder, receive_certificate)