문제링크: 튜플
✍🏻 Information
| content | |
|---|---|
| 언어 | python |
| 난이도 | ⭐️⭐️ |
| 풀이시간 | 30분 |
| 제출횟수 | 2 |
| 인터넷검색유무 | yes |
🍒 My Code
def solution(s):
answer = []
length = []
num = 0
tmpdigit = ""
tmplist = []
realanswer = []
for idx in range(len(s)-1):
if s[idx]=="{":
num,tmplist = 0,[]
elif s[idx]=="}":
length.append(num)
answer.append(tmplist)
elif s[idx]==",":
tmpdigit=""
elif s[idx].isdigit():
if s[idx+1].isdigit():
tmpdigit+=s[idx]
else:
num+=1
tmplist.append(int(tmpdigit+s[idx]))
for i in range(min(length),max(length)+1):
for j in answer[length.index(i)]:
if j not in realanswer:
realanswer.append(j)
return realanswer
def solution(s):
answer = []
s = s[:-2].replace("{","")
s = s.split("},")
s = [i.split(",") for i in s]
length = [len(i) for i in s]
for i in range(min(length),max(length)+1):
for j in s[length.index(i)]:
if int(j) not in answer:
answer.append(int(j))
return answer
💡 What I learned
<풀이1>
def solution(s):
answer = []
#각 집합별로 나누는 것을 아래와 같이 할 수 있다!!
s1 = s.lstrip('{').rstrip('}').split('},{')
#또는 s1 = s[2:-2].split("},{")
#그 다음은 , 기준으로 넣어주면 된다
new_s = []
for i in s1:
new_s.append(i.split(','))
#len로 sort 할수도 있었다
new_s.sort(key = len)
for i in new_s:
for j in range(len(i)):
if int(i[j]) not in answer:
answer.append(int(i[j]))
return answer
<풀이2>
def solution(s):
# {{, }}를 제거 후 },{ 으로 나누기
data = s[2:-2].split("},{")
# 길이 별로 오름차순 정렬
data = sorted(data, key=lambda x: len(x))
answer = []
for item in data:
# 각각의 원소로 분류 후
item = list(map(int, item.split(",")))
for value in item:
# 포함되어 있지 않으면 input
if value not in answer:
answer.append(value)
return answer
리스트 요소 길이순으로 sorting: