일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- minimum spanning tree
- programmers
- 백준
- Planned
- Bellman-Ford
- 그리디알고리즘
- 프로그래머스
- 백트래킹
- 알고리즘
- 최소스패닝트리
- 소프트웨어공학
- SQL
- 장고
- django
- 실습
- 데이터베이스
- DFS
- 함밥
- DP
- 모각코
- 동적계획법
- B대면노래방
- MyPlaylist
- 마라마라빔
- 파이썬
- 코드트리
- BFS
- Kruskal
- codetree
- 종합설계
Archives
- Today
- Total
Leta Learns
[Python] 백준 1205번 - 등수 구하기 본문
문제 https://www.acmicpc.net/problem/1205
1205번: 등수 구하기
첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보
www.acmicpc.net

어제 조금 정신 없는 상태에서 풀었더니 제출도 못하고 예제부터 틀렸었다.
어제는 일이 생겨서 다른 거 하다가 다시 못 풀어서 오늘 마저 풀었다.
어제 푼 코드를 보니 그냥 뭐 말도 안 되는 코드길래 ㅋㅋ 싹 다 갈아 엎었다.
n: 리스트에 있는 점수의 개수.
p: 랭킹 리스트의 개수.
n = 10, p = 5의 경우,
리스트에 10개(n)의 점수가 있어도 랭킹 리스트에는 5개(p)밖에 올라가지 못한다.
이 부분 이해하고 나니 나름 어렵지 않게 풀 수 있었다.
import sys
input = sys.stdin.readline
def makelist():
tae = n + 1 #태수 순위
if n == p and rank[-1] >= t:
return -1
for i in range(1, n+1):
if rank[i] <= t:
tae = i
break
return tae
#t: 태수 새 점수, p: 리스트에 올라갈 수 있는 점수의 개수
n, t, p = map(int, input().split())
if n == 0:
print(1)
else:
rank = [0] + list(map(int, input().split()))
print(makelist())

'Coding > 백준' 카테고리의 다른 글
[Python] 백준 5052번 - 전화번호 목록 (0) | 2022.02.21 |
---|---|
[Python] 백준 3649번 - 로봇 프로젝트 (0) | 2022.02.18 |
[Python] 백준 1946번 - 신입 사원 (0) | 2022.02.16 |
[Python] 백준 1700번 - 멀티탭 스케줄링 (0) | 2022.02.15 |
[Python] 백준 2529번 - 부등호 (0) | 2022.02.14 |