728x90
📌 문제
https://programmers.co.kr/learn/courses/30/lessons/64065
📌 문제 접근 방법
- 입력이 문자열로 들어오기 때문에 split을 쓰려다가 ','로 끊는 건 안되겠다 생각하고 포기했는데, 생각해보니 '},'으로 끊으면 됐었다.
- 우선, split을 사용하지 않고 sets에 문자열로 들어온 입력값을 리스트 형태로 바꿔서 저장해주었다.
- sets를 길이순대로 정렬한 후, sets에 들어있는 하나의 리스트를 각각 순회하며 answer에 값을 저장해주었다.
answer에 값이 저장되면 해당 리스트의 다른 숫자는 고려할 필요없으므로 바로 break 해줬다.
📌 코드
def solution(s):
sets = []
temp = []
temp_num = ''
start = False
for word in s[1:len(s)-1]:
if word == '{':
start = True
elif start and word.isnumeric():
temp_num += word
elif start and word == ',':
temp.append(int(temp_num))
temp_num = ''
elif word == '}':
start = False
temp.append(int(temp_num))
temp_num = ''
sets.append(temp)
temp = []
sets.sort(key = lambda x : len(x))
answer = []
for a_set in sets:
for a in a_set:
if a not in answer:
answer.append(a)
break
return answer
728x90
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[PG/Python] 배달 (0) | 2021.12.16 |
---|---|
[PG/Python] 행렬 테두리 회전하기 (0) | 2021.12.16 |
[PG/Python] 가장 먼 노드 (0) | 2021.12.09 |
[PG/Python] 기능개발 (0) | 2021.12.09 |
[PG/Python] 불량 사용자 (0) | 2021.12.08 |
댓글