본문 바로가기

카테고리 없음

파이썬) 등수 구하기

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

 

1205번: 등수 구하기

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

www.acmicpc.net

n, point, p = map(int, input().split())

if n <= 0:
    print(1)
else:

    arr = list(map(int, input().split()))
    rank = 1
    person = p
    for num in arr:
        if num == point:
            person -= 1
            rank = rank
        elif num < point:
            break

        elif num > point:
            person -= 1
            rank += 1

    if person <= 0:
        print(-1)
    else:
        print(rank)

사실 이 문제는 무척 쉬웠다.

딱 본 순간 bisect_left를 생각했었으나 같은 점수라면 등수는 그대로인 점에서 bisect_left를 사용하면 좀 길어질 것 같아 일반 반복문을돌렸다.

근데 처음 제출한 순간 실패되어서 뇌정지가 왔다.

그러고 해매기를 1시간...

bisect는 물론 딕셔너리와 세트까지 이상한 것들은 다 써봤다.

역시 멘탈이 중요하다..