-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTuple.py
More file actions
30 lines (29 loc) · 1.53 KB
/
Copy pathTuple.py
File metadata and controls
30 lines (29 loc) · 1.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 입력값 원소가 증가 증가할때 기존에 있던 원소는 그대로 있음
# 입력 값을 처음의 개수를 리스트에 넣어주면 된다.
# {3} -> {3,2} -> {3,2,4} -> {3,2,4,1}
# 즉 처음의 3 그리고 새로생긴 2 ... [3, 2, 4, 1]
# 문자열로 되어있는 입력값을 하나의 튜플로 빼준다.
# eval를 통해 안에 들어간 파라미터의 있는그대로의 값을 해석해준다.
# 즉, eval("5+2") => 7
# 단 주의해야할것은 s를 그대로 집어넣으면 타입에러가 난다.
# set형안에 set이 있을수 없기 때문이다.
# 그래서 인덱싱과 슬라이싱을 이용하여 해결한다.
# 튜플로 감싸어진것들을 튜플 안의 원소의 개수만큼 정렬을 시켜준다.
# nums를 정렬시키는데 key를 lambda로 받아서 n을 다 더한것중에 작은것(오름차순)
# 즉, 전부 원소가 오름차순 정렬시킴
# 단 주의해야할것은 원소가 하나만 주어졌을 때 정렬을 하면 타입에러 발생
# int형은 정렬 못함 그래서 분기점을 나눠야함
# result에 해당하는 원소가 저장이 안되어 있다면 저장을 한다.
# 그리고 다음걸로 오고 그 전 원소와 곂치는것은 저장을 안하고 저장 안된것만 저장을 한다.
def solution(s):
nums = eval(s[1:-1])
if len(nums) > 1:
nums = sorted(nums, key=lambda n : sum(n))
else:
return list(nums)
result = []
for num in nums:
for n in num:
if n not in result:
result.append(n)
return result