소스 코드
def solution(s):
answer = []
answer_lst = []
temp_lst = []
for q in range(1, len(s) - 1):
# {에서 시작
if s[q] == '{':
temp = ''
# }에서 초기화 및 answer_lst에 현재까지의 값들 추가
elif s[q] == '}':
temp_lst.append(int(temp))
temp = ''
answer_lst.append(temp_lst)
temp_lst = []
# ,는 두 가지 경우 있음
# 숫자,숫자 의 경우와 },{의 경우
# },{의 경우에 또 추가하지 않기 위해서 len 조건 추가
elif s[q] == ',':
if len(temp) != 0:
temp_lst.append(int(temp))
temp = ''
# 그 외는 숫자라 그냥 추가
else:
temp += s[q]
# 원소의 길이에 따른 정렬
answer_lst.sort(key=lambda x: len(x))
for w in answer_lst:
for e in w:
if e not in answer:
answer.append(e)
return answer
해결 방법
1. [1], [1,2], [1,2,3] 은 {1,2,3}을 의미함
2. 원소의 길이에 따라 정렬하고, 하나씩 값을 추가하면 될 것이라 생각하고 문제 해결
느낀 점
1. 다른 사람들의 코드를 보니 훨씬 깔끔하고, 생각이 많이 들어간 코드처럼 보임
(내가 해결한 방법은 상대적으로 막 작성한 느낌...)
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제풀이.프로그래머스' 카테고리의 다른 글
[프로그래머스 코딩] 비밀 지도 - PYTHON (0) | 2021.08.22 |
---|---|
[프로그래머스 코딩] 다트 게임 - PYTHON (0) | 2021.08.21 |
[프로그래머스 코딩] 신규 아이디 추천 - PYTHON (0) | 2021.07.28 |
[프로그래머스 코딩] 키패드 누르기 - PYTHON (0) | 2021.07.28 |
[프로그래머스 코딩] 로또의 최고 순위와 최저 순위 - PYTHON (0) | 2021.07.27 |