1. 문제 설명
n-tuple : (a1, a2, a3, ..., an)
특정 튜플을 표현하는 집합이 담긴 문자열 s가 매개변수로 주어질 때,
s가 표현하는 튜플을 배열에 담아 return
2. 풀이 전 계획과 생각
각 입력값은 {{ }}로 집합의 원소로 표현해준다.
→ { , } 기준으로 원소를 슬라이싱이 필요하다.
- 먼저 {{}} 제거한다.
- },{ 기준으로 잘라주자.
3. 풀이하면서 막혔던 점과 고민
🤔 튜플은 순서가 다르면 다 unique한 튜플로 취급한다.
집합의 원소도 순서가 다르면 다 unique한 원소인데, 어떻게 하나의 튜플로 구할 수 있는지 이해가 되지 않았다.
📚 문제 접근을 참고했다.
{{4,2,3},{3},{2,3,4,1},{2,3}}의 길이가 짧은 것부터 오름차순으로 정렬하면,
{{3},{2,3},{4,2,3},{2,3,4,1}}이 된다.
각 원소에 새롭게 들어온 숫자를 확인하자.
- {3} 다음에 온 {2,3} 에서 새로 들어온 수는 2 이다.
- {2,3} 다음에 온 {4,2,3}에서 새로 들어온 수는 4이다.
- {4,2,3} 다음에 온 {2,3,4,1} 에서 새로 들어온 수는 1이다.
💡 따라서 첫 숫자부터 새로 들어온 수를 나열하면, [3,2,4,1] 로 원하는 튜플을 구할 수 있다.
4. 풀이 전 계획
- 먼저 {{}} 제거한다.
- },{ 기준으로 잘라주자.
- 문자열 길이 순으로 sort 해주자.
- 해당 문자열이 다음 문자열에 없다면, answer에 추가해주자.
5. 풀이
def solution(s):
answer = []
s = s[2:-2]
s = s.split('},{')
s.sort(key = len)
for one_set in s:
one_set_list = one_set.split(',')
for element in one_set_list:
element = int(element)
if element not in answer:
answer.append(element)
return answer
6. 풀이 후 알게된 개념과 소감
- 입출력 예시를 설명할 때, 출력 → 패턴 → 입력을 설명한다면,
- 입력 → 패턴 → 출력으로 설명해보면서, 문제를 이해해보자.
'Problem Solving' 카테고리의 다른 글
[백준] 13549 : 숨바꼭질3 / python (0) | 2022.02.13 |
---|---|
[백준] 1697 : 숨바꼭질 / python (0) | 2022.02.08 |
[백준] 1753 : 최단경로 / python (0) | 2022.02.05 |
[백준] 18352 : 특정 거리의 도시 찾기 / python (0) | 2022.02.03 |
[프로그래머스] 정수 삼각형 / python (0) | 2022.02.03 |