프로그래머스 lv2 튜플 파이썬
특정 튜플을 표현하는 집합이 담긴 문자열 s가 매개변수로 주어질 때, s가 표현하는 튜플을 배열에 담아 return 하도록 solution 함수를 완성해주세요.
1. 다르게 생각해보면 제일 많이 등장한 것이 첫번째니, 등장한 횟수를 기준으로 sort() 해주면 되지 않을까? 2. 원소와 원소 개수만 확인 하면 되니, dict을 사용할까 3. replace()를 사용해도 될것 같은데 먹히지 않으면 re 를 사용할 생각 4. dict.values()를 기준으로 sort 해준 후 return 하자
def solution(s):
s_dict = {}
s = s.replace('{','').replace('}','').split(',')
for i in s:
i = int(i)
if i in s_dict :
s_dict[i] += 1
else:
s_dict[i] = 1
return (sorted(s_dict, key = lambda x: s_dict[x], reverse = True))
처음에는 전부 replace
를 해주려고 했지만, 그럴 경우 숫자 111
이 1 1 1
로 변하는 일이 생겨서 ,
를 기준으로 split()
해줬다.
그 후 i
를 int
로 넣어주기 위해 변경을 미리 해줬다.
왜냐면 일일히 type
을 바꿀경우, 시간이 꽤 소모 될것 같았다.
그 후 s_dict.key()
를 기준으로, sort()
해줬는데,
문제는 많이 나온 원소가 가장 첫번째로 들어간 원소리니, reverse = True
를 적용해줬다.
해결!