반응형
2019 카카오 개발자 겨울 인턴십 문제입니다.
문제풀이
1. 문제가 잘 이해가 안되는데, 예로 [2,1,3,4]를 설명하면 다음과 같다.
[2,1,3,4]는 {{2},{2,1},{2,1,3},{2,1,3,4}}로 쓸 수 있는데, 이 집합의 순서를 아래와 같이
{{2,1},{2,1,3},{2},{2,1,3,4}} 등으로 바꿀 경우, 이 집합을 통해 [2,1,3,4]를 맞추는 문제이다.
2. 집합의 각 요소를 살펴보면, 2가 4번, 1이 3번, 3이 2번, 4가 1번 등장하는 것을 볼 수 있다.
즉, 많이 순서대로 앞에 위치하는 요소가 된다.
Python Code
1
2
3
4
5
6
7
8
9
10
11
|
def solution(s):
s = s[2:-2]
co = {}
for tuple in s.split('},{') :
for t in tuple.split(','):
tmp = int(t)
if tmp in co:
co[tmp] = co[tmp] + 1
else:
co[tmp] = 1
return sorted(list(co.keys()), key = lambda x : co[x], reverse = True)
|
cs |
Line 4 : 각 집합을 꺼냅니다.
Line 5 : 각 집합의 요소를 꺼내 int로 변환해줍니다(Line 6).
Line 3, 7 - 10 : co는 각 요소가 key, 등장하는 횟수가 value인 딕셔너리 자료구조입니다.
Line 11 : co의 key들을 등장 횟수를 기준으로 정렬하여 리스트로 반환합니다.
문제링크
코딩테스트 연습 - 튜플
"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]
programmers.co.kr
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 불량 사용자 (0) | 2020.12.03 |
---|---|
프로그래머스 캐시 (0) | 2020.12.01 |
프로그래머스 n진수 게임 (0) | 2020.11.10 |
프로그래머스 SQL 동명 동물 수 찾기 (0) | 2020.11.09 |
프로그래머스 SQL 우유와 요거트가 담긴 장바구니 (0) | 2020.11.09 |