본문 바로가기
공부/백준

[백준] 1205번

by _음주토끼_ 2022. 6. 15.

말 그대로 등수를 구하는 문제이다.

단, 동점이 존재할 경우 같은 등수로 보고 그 직후의 등수를 +1등수로 한다.

Test Case로 예를 들면,

[100, 90, 90, 80]이 존재할 때 1,2,2,4등인 것이다.

3등이 없고 동점자는 2등으로 두명인 셈이다.

나는 처음에 문제를 잘못 이해하고(대충 본 내 잘못.맞음.) 80을 3등이라고 생각했다.

그래서 list로 입력을 받은 뒤 set로 집합, 다시 list로 변형하고 reverse했다.

set로 만들면 원소의 순서가 랜덤하기 때문이었다.

복잡하게 생각한게 오히려 독이었다.

+) 애초에 비오름차순으로 점수를 주었기 때문에 list로 받기만 하면 끝!

점수를 낸 것이 최초(n=0)일 경우 무조건 1등이다.

그리고 n=0이 아닌 경우는 그 안에서 또 두 가지 조건으로 나뉜다.

정해진 순위권(p등) 안에 들지 못하는 점수면 -1을 출력한다.

이 경우를 따지기 위해선 주어진 점수(n)는 p개 이상이어야 한다. 이게 첫 번째.

p보다 작은 개수의 점수가 주어졌을 때는 필히 순위권에 들 수 있으므로 다음 조건으로 넘어간다.

두 번째 조건이다. 이때는 위의 조건들을 모두 통과하여 왔으므로 그냥 순위를 출력하면 된다.

i = 0부터 시작하므로 답은 i+1로 해준다. 주어진 점수와 score를 비교하는 반복문을 짜서 돌린다.

조건에 부합하는 rank[i]가 있을 때까지 실행 후 break된다.

'공부 > 백준' 카테고리의 다른 글

[백준] 13305번  (0) 2022.06.15
[백준] 1764번  (0) 2022.06.15
[백준] 1436번  (0) 2022.06.15
[백준] 11050번  (0) 2022.06.15
[백준] 1152번  (0) 2022.06.15