[백준] #2535 아시아 정보올림피아드 python

2023. 4. 14. 02:46

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

 

2535번: 아시아 정보올림피아드

첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사

www.acmicpc.net

 

📕 설명 📕

 

각 대회에 대한 정보를 리스트에 넣고 정렬한 뒤 다시 역으로 score에 대해 정렬합니다.

 

그리고, dictionary를 생성하여 해당 값에 매칭되는 것이, 해당 팀이 2회 이하 나와야 하므로,

 

2회 이하로 맞춰주기 위해 2회 받으면 continue로 넘겨줍니다.

 

그리고, 그 조건에 위배되지 않는 값들은 결과 list에 넣습니다.

 

🧑🏻‍💻 나의 풀이 🧑🏻‍💻

 

N_list = []
max_ = 0
for _ in range(int(input())):
    country, student, score = map(int, input().split())
    N_list.append([score, country, student])
    if max_ < country:
        max_ = country
res = []
c_dict = {i:0 for i in range(1,max_+1)}
for i in reversed(sorted(N_list)):
    c_dict[i[1]] += 1
    if c_dict[i[1]] > 2:
        continue
    res.append([i[1],i[2]])
    if len(res) == 3:
        break
for i in res:
    print(i[0], i[1])

 

BELATED ARTICLES

more