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 |