Algorithem/백준 PS with code

백준 #1205 - [S4] 등수 구하기 : 구현

jamong5 2023. 5. 29. 14:03

(python3)

 

1205번: 등수 구하기

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

www.acmicpc.net

 

 

예외 처리

문제에 몇가지 예외사항이 주어져 있기 때문에 꼼꼼하게 처리해주면 문제 없이 해결할 수 있습니다.

 

코드

def solution(input) : 
    N,TS,P = list(map(int,input().split()))
    if N == 0 : # 한줄만 입력되는 경우
        print(1)
        return
    scores = list(map(int, input().split())) # 두번째줄 입력 받기
    
    score_board = [[scores[0],0]] # 등수 처리에 좋게 저장 형태 변환
    for i in scores :
        if i == score_board[-1][0] :
            score_board[-1][1]+=1
        else :
            score_board.append([i,1])

    if N == P and TS <= scores[-1] : # N <= P 라는 조건이 있기 때문에 N==P 인 랭킹이 다 찬 경우만 -1이 될 수 있음.
        print(-1)
        return
    
    th = 0 # 태수보다 점수가 높은 사람 수 저장
    for s,n in score_board :
        if TS < s : 
            th+=n
        else : # 태수와 점수가 같거나 더 작은 점수가 랭킹에 있으면
            print(th+1)
            return
    print(th+1) # else 를 못들어간 경우
    
solution(input)

 

my solved.ac :

 

solved.ac

알고리즘 문제해결 학습의 이정표 🚩 Baekjoon Online Judge 문제들의 난이도 및 티어 정보를 제공하는 사이트입니다.

solved.ac