알고리즘/문제 풀이
[Python/파이썬 프로그래머스] 튜플
광규니
2021. 4. 29. 17:54
반응형
programmers.co.kr/learn/courses/30/lessons/64065
코딩테스트 연습 - 튜플
"{{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
2019 카카오 개발자 겨울 인턴십 문제
풀이
우선 주어진 s의 값을
replace를 써서 다듬고 리스트 형변환을 시켜줬씁니다.
그 다음 출력값이 입력 index에 상관없이 입력 갯수가 작은거부터 출력시켜줘야해서
cnt 값에 갯수랑 index값을 넣어준 뒤
cnt 값 따라가면서 flag로 기존에 존재하는 값인지 체크해주고
없으면
answer에 append
다른 답 보니까 flag 안쓰고 not in 쓰드라구용...
not in 까먹지 말기!
s="{{2},{2,1},{2,1,3},{2,1,3,4}}"
answer=[]
s=s.replace('{','')
s=s.replace('},',' ')
s=s.replace('}','')
a=list(map(str,s.split()))
tmp=[]
for i in a:
tmp.append(list(map(int,i.split(','))))
cnt=[[0]*2 for _ in range(len(tmp))]
for i in range(len(tmp)):
cnt[i][0]=len(tmp[i])
cnt[i][1]=i
cnt.sort()
for i in range(len(cnt)):
for j in tmp[cnt[i][1]]:
flag=True
for k in answer:
if j==k:
flag=False
break
if flag==True:
answer.append(j)
print((answer))
반응형