Algorithm/백준

[백준 알고리즘] 8979번: 올림픽 (Python)

에릭 Kim 2023. 10. 20. 13:58
반응형

https://www.acmicpc.net/problem/8979

 

8979번: 올림픽

입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각

www.acmicpc.net

 

소스코드

 

 

풀이

★ solved.ac 기준 실버5 난이도의 문제여서 쉽게 해결할 수 있을 줄 알았는데, 아니었습니다 ㅠㅠ

 

★ 먼저 문제에 주어진 조건에 따라 정렬하는 부분은 간단합니다 ! lambda 함수를 통해 금,은,동 순으로 내림차순 정렬을 해줬습니다. 

 

★ 이후 찾고자 하는 나라 K의 순위를 출력해야 하는데, 공동 순위를 고려해줘야 하며 공동의 순위가 있을 경우 그 다음 순위는 그만큼 밀리게 됩니다 ! 그렇기에 정렬한 배열을 돌며, 나라의 번호가 k인 것을 찾아 tmp에 저장해둡니다. 

 

★ 이후 tmp의 순위를 출력해야 하는데, 리스트 슬라이싱 기능을 사용하여 금,은,동이 전부 같을 경우 순위를 출력하고 반복문을 빠져나옵니다 ! 이게 가능한 이유는 중복이 존재하더라도 가장 처음에 등장하는 나라에 순위가 걸리기 때문에 공동 순위를 출력할 수 있습니다. 

 

반응형