본문 바로가기
코딩공부/백준 (python)

[백준 1205] 등수 구하기 (Python)

by CodingKwon 2022. 9. 6.

문제 링크

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

 

1205번: 등수 구하기

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

www.acmicpc.net

 

나의 코드 (Python)

n, x, p = map(int, input().split())
if n == 0: # n이 0이면 경우는 무조건 1
    print(1)
else:
    l = list(map(int, input().split()))
    cnt = 0
    if l[n-1] >= x and n == p: # 마지막 값이 내 점수보다 크거나 같으면서 리스트가 꽉찬 경우 -1
        print(-1)
    else:    
        for i in l:      
            cnt += 1 # 등수 카운팅
            if x >= i:  # 랭킹리스트가 내 점수가 더 크거나 동일한 경우 등수 출력
                print(cnt)
                break
        else: # 랭킹리스트에 내 점수보다 크거나 같은걸 찾지 못한 경우
            print(cnt+1)

 

경우의 수

1. 입력 리스트가 0인 경우는 무조건 답은 1등

2. 1번 조건이 아니면서 마지막 값이 내 점수보다 크거나 같으면서 리스트가 꽉 찬 경우 : 무조건 -1

3. 2번 조건까지 해당하지 않으면서 자기 점수가 점수 리스트보다 크거나 같은 경우

4. 모든 반복문을 완료해도 조건을 찾지 못한 경우 (랭킹 리스트에 내 점수보다 크거나 같은 값이 없는 경우)

 

위 경우의 수에 맞게 등수를 산출한다!

댓글