[프로그래머스/파이썬] 튜플(64065) 풀이
업데이트:
문제 정보
- 문제 출처: 프로그래머스 코딩테스트 연습
- 문제 링크: 튜플(64065)
- 문제풀이 코드 GitHub 링크
- 풀이 언어: Python 3
풀이
문제
문자열 형태로 주어진 집합 목록을 해석해 원래 튜플 순서를 복원하는 문제입니다.
핵심은 원소 개수가 작은 집합부터 보면 매 단계마다 “새로 추가된 원소”가 튜플의 다음 원소라는 점입니다.
코드
def solution(s):
answer = []
s = s[2:-2].split('},{')
for i in range(len(s)): s[i] = set(map(int,s[i].split(',')))
s.sort(key = lambda x: len(x))
found = set([])
for subset in s:
for item in subset:
if item not in found:
answer.append(item)
found.add(item)
return answer
print(solution("{{2},{2,1},{2,1,3},{2,1,3,4}}"))
설명
처리 순서는 다음과 같습니다.
- 문자열을 분해해 집합 리스트로 변환
- 집합 크기 기준으로 오름차순 정렬
- 이미 나온 원소(
found)를 제외하고 새 원소를 순서대로answer에 추가
이 방식으로 튜플 순서를 복원할 수 있습니다.
댓글남기기