-
[백준 / Python] 1205번 등수 구하기 | 초코더알고리즘/백준 2020. 1. 16. 19:36
https://www.acmicpc.net/problem/1205
접근법
새로 들어온 점수를 append()함수로 추가하고 정렬해줍니다.
그리고 새로 들어온 점수의 등수를 index()함수를 이용해 구해줍니다.
그런데 두번째 입출력 예와 같이 새로들어온 점수가 마지막 점수와 같으면서, N과 P가 같으면
-1을 반환해야 합니다. 예를 들어 다음과 같은 입력이 들어오면
5 1 5
5 4 3 2 1
새로들어온점수는(=1) 마지막 점수인 '1'과 같습니다. 그리고 N=5와 P=5 또한 같으므로 1은 5등을 출력하는 것이 아닌 랭킹의 범위를 넘었다고 간주하여 '-1'을 반환합니다.
나의 풀이
import sys n,yj,p=input().split() nums=list(map(int,sys.stdin.readline().split())) over=0 if int(p)==0: #랭킹 길이가 0이면 -1반환 print(-1) elif int(n)==0: #입력 점수가 0개면 1등반환 print(1) else: nums.append(int(yj)) #yj의 점수 추가 nums.sort(reverse=True) #정렬 if nums.index(int(yj))+1 > int(p): #yj의 등수가 랭킹 범위를 넘으면 print(-1) #-1반환 else: if int(yj) == nums[-1] and int(n)==int(p):#yj점수==마지막점수 AND n==p print(-1) #-1 반환 else: print(nums.index(int(yj))+1)
'알고리즘 > 백준' 카테고리의 다른 글
[백준 / Python] 2606번 바이러스 | 초코더 (0) 2020.01.17 [백준 / Python] 1260번 DFS와 BFS | 초코더 (0) 2020.01.17 [백준 / Python] 2399번 거리의 합 | 초코더 (1) 2020.01.15 [백준 / Python] 2959번 거북이 | 초코더 (0) 2020.01.14 [백준 / Python] 5052번 전화번호 목록 | 초코더 (1) 2020.01.14