Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
Tags
- Aspect
- ABAE
- leetcode
- 분산
- 코딩테스트
- paper review
- 백준
- dfs
- deepseek
- gpt1
- 논문리뷰
- 파이썬
- 알고리즘
- transformer
- GPT
- 프로그래머스
- MySQL
- 그래프
- 연구
- NLP
- join
- 머신러닝
- outer join
- 자연어처리
- LLM
- Bert
- SQL 첫걸음
- 가상환경
- ChatGPT
- SQL
Archives
- Today
- Total
huginn muninn
[백준] 1205 파이썬 등수 구하기_구현 본문
https://www.acmicpc.net/problem/1205
1205번: 등수 구하기
첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보
www.acmicpc.net
내가 생각했을 때 이 문제에서 핵심은 순위 부여이다.
ar=[10,9,8,7,6,5,5,4,3] 에 순위를 부여했을 때
rank=[1,2,3,4,5,6,6,8,9] 로 순위를 부여하는 알고리즘을 일단 구현할 줄 알아야 한다.
아래 코드로 순위를 부여할 수 있다.
for i in ar:
rank_count=1
for j in ar:
if i<j:
rank_count+=1
rank.append(rank_count)
그리고 순위를 구현했다면 조건에 유의해야한다.
- 랭킹 리스트에 올라 갈 수 있는 점수의 개수 P가 주어진다.
- p가 10이면 10개만 들어갈 수 있음. 즉 1,2,2,3,4,5,6,7,8,9 일때 새로운 순위인 10위가 들어온다면 들어올 수 없다.
- 만약 점수가 랭킹 리스트에 올라갈 수 없을 정도로 낮다면 -1을 출력한다.
- 숫자가 10,9,8,7,6,5,4,3,2,1 랭킹이 1,2,3,4,5,6,7,8,9,10이 있고 p가 10이라고 해보자 만약 1이 새롭게 들어온다면 이미 10개가 꽉차있기 때문에 들어오지 못하고 -1을 출력해야한다. 0이 들어와도 마찬가지.
- 그럼 만약 2가 들어왔다면? 2는 들어올 수 있다. 1이 밀려나기 때문.
- 만약, 랭킹 리스트가 꽉 차있을 때, 새 점수가 이전 점수보다 더 좋을 때만 점수가 바뀐다.
- 숫자가 10,9,8,7,6,5,4,3,3,0이고 p가 10일 때 이미 꽉차있지만 만약에 2가 들어온다면 0이 밀리나기 때문에 점수가 바뀔 수 있다.
#등수구하기 1205
#N,새로운 점수,P:랭킹리스트에 올라갈 수 있는 점수의 개수
#랭킹 리스트
n,new,p=map(int,input().split())
ar=[]
#n이 0일 수도 있으니 조건 걸고 정렬해주기
if n!=0:
ar=list(map(int,input().split()))
ar.sort(reverse=True)
rank=[]
rank_count=1
if len(ar)!=0 and ar[-1]>=new and len(ar)==p:
print(-1)
else:
ar.append(new)
ar.sort(reverse=True)
for i in ar:
rank_count=1
for j in ar:
if i<j:
rank_count+=1
rank.append(rank_count)
index=0
for i in range(len(ar)):
if ar[i]==new:
index=i
print(rank[index])'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 조건에 맞는 개발자 찾기 SQL (1) | 2024.04.19 |
|---|---|
| [백준] 1244 파이썬 스위치 켜고 끄기 런타임 에러 (0) | 2024.04.15 |
| [백준] 스타트링크 5014 파이썬 에러 (1) | 2024.04.07 |
| [백준] 2493 탑 (0) | 2024.03.29 |
| [백준] 퇴사2 파이썬 DP (0) | 2024.03.22 |