-
8979. [Python]올림픽Python_알고리즘/Silver V 2023. 4. 4. 00:35
1. 문제
https://www.acmicpc.net/problem/8979
2. 접근 방법
- 시간 제한: 1초
- 메모리 제한: 128MB
- 구현
- 정렬
3. 파이썬 코드
N,K = map(int,input().split()) num_list = [] # 나라별 리스트 추가 for _ in range(N): country = list(map(int,input().split())) num_list.append(country) # 금, 은, 동 순으로 리스트 정렬 num_list.sort(reverse=True, key=lambda x:(x[1],x[2],x[3])) # 내가 원하는 나라의 금 은 동 메달 갯수 저장 for i in range(N): if num_list[i][0] == K: check_list = num_list[i][1:] # 반복문 순회하며 그 나라의 금, 은, 동 개수가 같은 인덱스값 출력 for j in range(N): if num_list[j][1:] == check_list: print(j+1) break
4. 문제를 풀고난 후 생각
- 금, 은, 동 순으로 정렬을 하기 위해서 lambda 를 사용하여 정렬하는 방식을 검색하여 문제를 해결하였다.
- x[1], x[2], x[3] 금, 은, 동 순으로 정렬을 한 후 내가 원하는 나라(K)와 일치하는 리스트인 경우 그 나라의 금, 은, 동 값을 찾아 변수에 저장해준다.
- 그 후 그 변수에 저장된 값과 같은 값이 나왔을 때의 인덱스 값을 출력해 주는 방식으로 해결했다.
5. 문제를 푸는데 도움이 되는 지식
- lambda 이용한 sort 정렬
'Python_알고리즘 > Silver V' 카테고리의 다른 글
2822. [Python]점수 계산 (0) 2023.04.08 9625. [Python]BABBA (0) 2023.04.05 2740. [Python]행렬 곱셈 (0) 2023.03.31 2535. [Python]아시아 정보올림피아드 (0) 2023.03.29 1817. [Python]짐 챙기는 숌 (0) 2023.03.27