https://programmers.co.kr/learn/courses/30/lessons/64065
"""
1. 아이디어
2. 시간복잡도
"""
def solution(s):
# 문자열로 s값을 준것에서 착안하여 "{ , }" 3 문자를 없애고 숫자는 정수 값으로 리스트에 넣어준다.
s = s.replace("{", "")
s = s.replace("}", "")
s = list(map(int, s.split(',')))
hash = dict() # 해시를 이용해서 숫자의 빈도수를 계산한다.
for i in s:
if i in hash:
hash[i] += 1
else:
hash[i] = 1
# value값을 기준으로 내림차순 정렬한다 (많이 나온 숫자가 제일 앞자리 부터 차지한다. - 예시 잘 보기)
tmp = sorted(hash.items(), key = lambda x : x[1], reverse=True)
# value값을 기준으로 내림차순 정렬 됐으면 순서대로 key값을 넣어준다.
answer = []
for i, j in tmp:
answer.append(i)
return answer
코드에 주석을 달아 놓아서 별 설명은 없겠지만 계속 풀어 봐야할 필요성을 느낌
그리고 정규표현식을 이용해서 다시 한번 풀어 봐야함
def solution(s):
s = s.replace("{", "")
s = s.replace("}", "")
s = s.split(',')
s = list(map(int, s))
hash = dict()
for i in s:
if i in hash:
hash[i] += 1
else:
hash[i] = 1
# print(hash) # 예시 1 결과 : {2: 4, 1: 3, 3: 2, 4: 1}
hash = sorted(hash.items(), key = lambda x : x[1], reverse=True)
# print(hash) # 예시 1 결과 : [(2, 4), (1, 3), (3, 2), (4, 1)]
"""
1. sorted()는 매개변수로 들어온 이터러블한 데이터를 새로운 정렬된 리스트로 만들어서
반환 해주기 때문에 리스트 형태로 바뀐 것임.
2. hash.items()는 딕셔너리의 키와 값의 쌍을 받는 함수
"""
answer = []
for x, y in hash:
answer.append(x)
return answer