올림픽 [8979]

2021. 2. 24. 01:56알고리즘/파이썬

반응형

올림픽 [8979]

백준 - https://www.acmicpc.net/problem/8979

 

8979번: 올림픽

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

www.acmicpc.net

문제

  • 올림픽은 참가에 의의가 있기에 공식적으로는 국가간 순위를 정하지 않는다.

  • 그러나, 많은 사람들이 자신의 국가가 얼마나 잘 하는지에 관심이 많기 때문에 비공식적으로는 국가간 순위를 정하고 있다.

  • 두 나라가 각각 얻은 금, 은, 동메달 수가 주어지면, 보통 다음 규칙을 따라 어느 나라가 더 잘했는지 결정한다.

    1.금메달 수가 더 많은 나라

    2.금메달 수가 같으면, 은메달 수가 더 많은 나라

    3.금, 은메달 수가 모두 같으면, 동메달 수가 더 많은 나라

  • 각 국가는 1부터 N 사이의 정수로 표현된다. 한 국가의 등수는 (자신보다 더 잘한 나라 수) + 1로 정의된다.

  • 만약 두 나라가 금, 은, 동메달 수가 모두 같다면 두 나라의 등수는 같다.

    • 예를 들어, 1번 국가가 금메달 1개, 은메달 1개를 얻었고, 2번 국가와 3번 국가가 모두 은메달 1개를 얻었으며, 4번 국가는 메달을 얻지 못하였다면,

    • 1번 국가가 1등, 2번 국가와 3번 국가가 공동 2등, 4번 국가가 4등이 된다.

    • 이 경우 3등은 없다.

  • 각 국가의 금, 은, 동메달 정보를 입력받아서, 어느 국가가 몇 등을 했는지 알려주는 프로그램을 작성하시오.

     


입력

  • 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다.

  • 각 국가는 1부터 N 사이의 정수로 표현된다.

  • 이후 N개의 각 줄에는 차례대로 각 국가를 나타내는 정수와 이 국가가 얻은 금, 은, 동메달의 수가 빈칸을 사이에 두고 주어진다.

  • 전체 메달 수의 총합은 1,000,000 이하이다.

출력

  • 출력은 단 한 줄이며, 입력받은 국가 K의 등수를 하나의 정수로 출력한다.

  • 등수는 반드시 문제에서 정의된 방식을 따라야 한다.

 


풀이과정

  • 금메달 은메달 동메달 개수를 비교를 하며 정렬할때 버블정렬을 사용했다.

  • 국가 금은동 배열 끝에 [등수] 원소를 추가하여 이를 통해 등수를 표현한다.

  • 같은 메달수의 경우 등수를 같게 해준다.

 


느낀점

  • 상당히 비효율적으로 보여서 뭉치려고 했으나 오류가 난다.

  • for문이 같은 레벨에 있다면 안심하고 같은 변수를 써도된다.

  • 비효율 적인거같은데 이것이 최선일까?

  • sorted 와 람다를 쓴다면 훨씬~~~~ 쉬워진다. 람다 공부하자.

반응형

'알고리즘 > 파이썬' 카테고리의 다른 글

스위치 켜고 끄기 [1244]  (0) 2021.02.24
후보 추천하기 [1713]  (0) 2021.02.24
크로스워드 만들기 [2804]  (0) 2021.02.24
오르막길 [2846]  (0) 2021.02.24
나는 요리사다 [2953]  (0) 2021.02.24