2023-04-15 알고리즘 복기록
Summary
프로그래머스 “튜플”
어려웠던 부분
문제에서 정의하는 튜플을 이해하는 것이 가장 어려웠다. 튜플을 지칭하는 집합에 대하여 원소가 나타난 횟수가 많은 순서대로 나열했을 때 해당 튜플이 된다는 점을 이해하고서야 문제를 풀 수 있었다.
해결한 방법
- 튜플의 집합에 대해 적절히 parsing (‘{‘, ‘}’ 문자열을 기준으로)
- 각 숫자에 대해 나타난 횟수를 기록
- 내림차순으로 정렬한 결과를 리턴
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from collections import defaultdict
def solution(s):
d = defaultdict(int)
s = s[1:-1]
left = 0
st = []
for i in range(len(s)):
if s[i] == '{':
left = i
elif s[i] == '}':
for numStr in s[left+1:i].split(','):
d[int(numStr)] += 1
return [item[0] for item in sorted(d.items(), key=lambda x: x[1], reverse=True)]