Algorithm/Python

[프로그래머스] 튜플

🥭맹2 2021. 5. 14. 03:07

1. 문제

https://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

2. 접근 방법

처음에 인풋이 문자열이라 놀랬따.

그래서 파싱하고 리스트로 만들어줘가지고

sort해가지고 length가 가장 작은거부터 원소가 배열되게끔 만들었다.

그리고 뒤에 원소 중 앞의 원소에 없는 것을 append 해줬다.

 

완전 문제 그대로 풀었음

3. 코드

Python

def solution(s):
    s = s[2:len(s)-2]
    answer = []
    inputs = list(s.split('},{'))
    for i in range(len(inputs)):
        inputs[i] = list(inputs[i].split(','))
    inputs.sort(key=lambda x:len(x))
    answer.append(int(inputs[0][0]))
    for i in range(len(inputs)-1):
        prev_lst = inputs[i]
        next_lst = inputs[i+1]
        num = [x for x in next_lst if x not in prev_lst]
        answer.append(int(num[0]))
    return answer

4. 마치며

근데 다른 사람 풀이 보니까

걍 갯수 세가지고

제일 많은 갯수부터 앞에서부터 차곡차곡 쌓았다

 

어떻게 이런 생각을하지 ?

 

신기햇

'Algorithm > Python' 카테고리의 다른 글

[백준 10819] 차이를 최대로  (0) 2021.05.25
[프로그래머스] 주식가격  (0) 2021.05.20
[백준 6603] 로또  (0) 2021.05.11
[백준 10974] 모든 순열  (0) 2021.05.10
[백준 10973] 이전 순열  (0) 2021.05.09