알고리즘/프로그래머스문제풀이

[Python/프로그래머스]튜플_(KaKao)_문제 이해가 잘 안되요

개발자 덕구🐾 2022. 9. 26. 16:07
728x90

 

 

 

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/64065

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

🐾 20221013

 

 

 

문제가 이해가 잘 안되었다. 

이게 무슨 소리람?

근데 질문하기에서 한 답변을 보고 이해가 갔다.

 

 

 

[] 로 둘러쌓인 튜플은 순서가 달라지면 다른 튜플이지만 튜플로 만든 {}는 내부 순서가 달라져도 괜찮다!!

 

 

 

 

그러니까 [2,1]은 {1}을 만들 수 없다.

[4,1,3,2]은 한자리수 {}로 4밖에 못만든다. 앞에서부터 밖에 못묶는다.

근데 묶고 나서는 그 안에서 순서를 바꿀 수 있다. 

 

 

 

 

1. s = s[2:-2]
    s = s.split('},{')

가장 자리의 {{ 와 }}를 제거하고 },{를 기준으로 나누어 주었다. 

 

2. s.sort(key = len)

길이가 짧은 순으로 정렬하였다. 

그래야 [] 를 잘 찾을 수 있다. {} 내부에서는 순서를 바꿀 수 있지만 {}를 만들 때는 순서를 못바꾸기 때문에

글자수가 짧으면 앞에 수들만 있을 수 있기 때문이다. 

앞에 수 먼저 돌면서 answer을 채우면 된다. 

 

 

 

코드 : 

def solution(s):
    answer = []
    s = s[2:-2]
    s = s.split('},{')
    s.sort(key = len)
    for i in s :
        ii = i.split(',')
        for j in ii :
            if int(j) not in answer :
                answer.append(int(j))
    return answer

 

 

 

 

복습하면서 만든 코드 : 

def solution(s):
    answer = []
    s = s[2:-2].split('},{')
    tmp = []
    for i in range(len(s)) :
        tmp.append(s[i].split(','))
    tmp.sort(key = lambda x : len(x))
    for t in tmp :
        for i in t :
            if int(i) not in answer :
                answer.append(int(i))
    return answer

 

 

 

 

참고 블로그 : 

https://hazung.tistory.com/103

 

[알고리즘] 프로그래머스 튜플 / python

https://programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업

hazung.tistory.com

 

반응형