감사쟁이야
감사쟁이의 성장기록
감사쟁이야
  • 분류 전체보기 (130)
    • Java-Spring (0)
    • ComputerScience (0)
    • Project (64)
      • TIL, WIL (57)
      • Project Retrospect (7)
    • Problem Solving (63)
    • Book Review (1)
    • Culture & Discovery (0)
    • Daily Log (2)

블로그 메뉴

  • 홈
  • 깃허브
  • 방명록
hELLO · Designed By 정상우.
감사쟁이야

감사쟁이의 성장기록

[프로그래머스] 튜플 (2019 KAKAO INTERNSHIP) / python
Problem Solving

[프로그래머스] 튜플 (2019 KAKAO INTERNSHIP) / python

2022. 2. 6. 18:46

1. 문제 설명

 

코딩테스트 연습 - 튜플

"{{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

n-tuple : (a1, a2, a3, ..., an)

특정 튜플을 표현하는 집합이 담긴 문자열 s가 매개변수로 주어질 때,

s가 표현하는 튜플을 배열에 담아 return

 

2. 풀이 전 계획과 생각

각 입력값은 {{ }}로 집합의 원소로 표현해준다.

→ { , } 기준으로 원소를 슬라이싱이 필요하다.

  1. 먼저 {{}} 제거한다.
  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. 풀이 전 계획

  1. 먼저 {{}} 제거한다.
  2. },{ 기준으로 잘라주자.
  3. 문자열 길이 순으로 sort 해주자.
  4. 해당 문자열이 다음 문자열에 없다면, 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
    'Problem Solving' 카테고리의 다른 글
    • [백준] 13549 : 숨바꼭질3 / python
    • [백준] 1697 : 숨바꼭질 / python
    • [백준] 1753 : 최단경로 / python
    • [백준] 18352 : 특정 거리의 도시 찾기 / python
    감사쟁이야
    감사쟁이야
    sunzero0116@gmail.com

    티스토리툴바