알고리즘/문제 풀이

[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))
반응형