※ 문제
https://www.acmicpc.net/problem/2910
※ 문제 유형
자료구조, 정렬, 해시를 사용한 집합과 맵(SILVER_3)
※ 나의 풀이
- from collections import Counter 활용
- Counter(list).most_common()을 통하여 빈도 순으로 정렬을 하여 list.sort(key = lambda x:counter[x], reverse = True)를 활용해 보았지만, 개수가 같은 요소는 올바르게 적용이 되지 않았고, 정렬 2순위로 list.index()활용하는 방법보다 Counter를 활용하는 방법으로 most_common()의 빈도 수는 개수가 같은 요소는 처음 발견된 순서를 유지하는 특성을 활용하여, 루프를 통해 [key] * val을 answer에 추가 하여, 출력을 하는 방법으로 진행
import sys
from collections import Counter
N, C = map(int, sys.stdin.readline().split())
li = list(map(int, sys.stdin.readline().split())) # 모든 입력을 정수로 변환
counter = Counter(li)
# print(counter.most_common()) # [(1, 3), (3, 3), (2, 3)]
answer = []
for key, val in counter.most_common():
answer += [key] * val
print(*answer) # 1 1 1 3 3 3 2 2 2
'CODING_TEST' 카테고리의 다른 글
[프로그래머스/Python] 기사단원의 무기 (0) | 2024.12.17 |
---|---|
[프로그래머스/Python] 추억 점수 (0) | 2024.12.17 |
[프로그래머스/Python] [1차] 비밀지도 (0) | 2024.12.16 |
[백준/Python] 2606. 바이러스 (0) | 2024.11.27 |
[백준/Python] 1744. 수 묶기 (0) | 2024.11.22 |