본문 바로가기
코딩테스트

튜플

by 느림보어른 2021. 5. 29.

문제풀이

import re

def solution(s):
    answer = []
    
    s = s.split('},{')
    
    for idx in range(0, len(s)):
        num_array = []
        s[idx] = re.sub("\{|\}", "", s[idx])
        s[idx] = s[idx].split(',')
        for i in range(0, len(s[idx])):
            s[idx][i] = int(s[idx][i])
            
    s.sort(key=len)
    

    for num_array in s:
        for num in num_array:
            if num not in answer:
                answer.append(num)
                break
    
    return answer

알고리즘

특별한 알고리즘이 필요한 문제는 아니다. 다만 전에 봤던 sub() 메소드를 사용하면 쉽게 해결할 수 있다.

sort(key=len)

sort는 리스트를 오름차순으로 정렬하는 함수이다. 이번 문제에서는 내부 리스트의 크기를 기준으로 정렬해야하기 때문에 sort()메소드 안에 key=len 인수를 넣어서 리스트 크기를 기준으로 정렬하도록 했다.

그 외에도 다른 인수도 있다.

  • reverse=True: 정렬 결과를 반전
  • key=len: 문자열 기준으로 정렬
  • ket=str.lower: 대소문자 구분 없이 정렬

 

출처

문제: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

파이썬 자료구조와 알고리즘 - 미아 스타인 저/최길우 

'코딩테스트' 카테고리의 다른 글

3진법 뒤집기  (0) 2021.06.01
키패드 누르기  (0) 2021.05.30
행렬 테두리 회전하기  (0) 2021.05.29
음양 더하기  (0) 2021.05.29
소수 찾기  (0) 2021.05.28