[프로그래머스 lv2] 튜플

kms·2024년 4월 24일

📝 문제설명

출처로 대신합니다.

🔗 출처

https://school.programmers.co.kr/learn/courses/30/lessons/64065

✅ 아이디어

  1. 문자열다루기 strip, split
  2. 정렬과 차집합

✅ 정답

def solution(s):
    answer = []
    result = []
    # 1.문자열 다루기, strip 를 이용하여 원하는 문자 없애고, split
    parts = s.strip('{}').split('},{')
    for part in parts:
        numbers = [int(num) for num in part.split(',')]
        result.append(numbers)
    
    # 2.길이를 기준으로 오름차순 정렬
    s2 = sorted(result, key=len)
    answer.append(s2[0][0])
    for i in range(len(s2)):
        if i+1 > len(s2)-1:
            break
            
        # 3. 차집합
        answer.append(list(set(s2[i+1]) - set(s2[i]))[0])
    return answer

🔥 배운것

https://docs.python.org/3/library/stdtypes.html#str.strip
1. python str.strip([char]) 함수
언제사용하나?

  • 문자열 양끝의 공백을 제거할 때
  • 문자열 내부에 제거해야할 문자가 있을 때
'   spacious   '.strip()
>> 'spacious'
'www.example.com'.strip('cmowz.')
>> 'example'
  1. 집합자료형(set) 을 이용해서 차집합, 합집합 등을 유용하게 구할 수 있다.
{1, 2, 3} - {1, 2}
>> {3}

{1, 2} - {1, 2, 3}
>> set()

🕰️ 시간복잡도

O(nlogn)

0개의 댓글