Leta Learns

[Python] 백준 1205번 - 등수 구하기 본문

Coding/백준

[Python] 백준 1205번 - 등수 구하기

leta 2022. 2. 18. 12:35

문제 https://www.acmicpc.net/problem/1205

 

1205번: 등수 구하기

첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보

www.acmicpc.net

 

어제 조금 정신 없는 상태에서 풀었더니 제출도 못하고 예제부터 틀렸었다.

어제는 일이 생겨서 다른 거 하다가 다시 못 풀어서 오늘 마저 풀었다.

어제 푼 코드를 보니 그냥 뭐 말도 안 되는 코드길래 ㅋㅋ 싹 다 갈아 엎었다.

 

n: 리스트에 있는 점수의 개수.

p: 랭킹 리스트의 개수.

 

n = 10, p = 5의 경우,

리스트에 10개(n)의 점수가 있어도 랭킹 리스트에는 5개(p)밖에 올라가지 못한다.

 

이 부분 이해하고 나니 나름 어렵지 않게 풀 수 있었다.

 

import sys
input = sys.stdin.readline

def makelist():
    tae = n + 1 #태수 순위

    if n == p and rank[-1] >= t:
        return -1
    
    for i in range(1, n+1):
        if rank[i] <= t:
            tae = i
            break

    return tae

#t: 태수 새 점수, p: 리스트에 올라갈 수 있는 점수의 개수
n, t, p = map(int, input().split())
if n == 0:
    print(1)
else:
    rank = [0] + list(map(int, input().split()))
    print(makelist())

 

어렵지 않게 풀 수 있었다던 사람의 제출내역이 맞는지..?

 

 

Comments