-
[백준] 1205 - 등수 구하기알고리즘 2023. 5. 10. 16:45728x90
1. 문제
https://www.acmicpc.net/problem/1205
1205번: 등수 구하기
첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보
www.acmicpc.net
2. 접근
1. 처음에는 태수의 성적을 넣을 수 있는 공간에 scores에 insert로 넣고, 비오름차순으로 정렬되어 있으니까 2중 for문을 통해서 현재 점수부터 그 뒤의 수들을 비교해서 태수 점수의 index를 통해서 결과값을 구할라 했는데, 태수랑 scores에 같은 값이 있다면 결과값이 틀려진다 ( 테스트 코드에서 -1로 나오는 예제를 돌리면 제가 생각한 문제점을 볼 수 있습니다. )
2. 아래 풀이는 태수의 점수를 scores에 넣고 내림차순으로 정렬해준다
3. 태수 점수의 idx를 구하고 보여주는 한계 p를 기점으로 보여주는 범위안에 있다면 n==p & 태수의 점수가 scores[-1] 과 비교해서 결과값을 낸다
3. 풀이
import sys input = sys.stdin.readline n, taesu ,p = map(int,input().split()) if n == 0: print(1) else: scores = list(map(int,input().split())) scores.append(taesu) scores.sort(reverse=True) idx = scores.index(taesu)+1 if idx > p: print(-1) else: if n == p and taesu <= scores[-1]: print(-1) else: print(idx)
'알고리즘' 카테고리의 다른 글
[백준] 13565 - 침투 (0) 2023.05.12 [백준] 1138 - 한 줄로 서기 (0) 2023.05.10 [백준] 3184 - 양 (1) 2023.05.10 [백준] 1325 - 효율적인 해킹 (1) 2023.05.08 [백준] 1051 - 숫자 정사각형 (0) 2023.05.08