[programmers] 튜플 (2019 카카오 개발자 겨울 인턴십)

resilient

·

2021. 8. 23. 17:05

728x90
반응형

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

 

코딩테스트 연습 - 튜플

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

  • 이 문제는 튜플 관련된 문제인 줄 알았지만 문자열을 잘 다루는지를 묻는 문제였다.
  • 파이썬에서 문자열에 관련된 문제는 split을 먼저 떠올리는 게 좋다. split을 사용하면 분리해서 리스트에 담아준다.
  • 처음 주어지는 s 라는 문자열을 앞뒤 {{ , }} 부분은 신경 쓰지 않아도 되기 때문에 s [2:-2]로 제거를 해준다.
  • 그리고 숫자 형태의 문자열이 들어가 있는 부분은 },{ 을 기준으로 구분하면 된다.
  • 그리고 길이가 짧은 문자열부터 문자열 길이를 기준으로 오름차순 정렬을 해준다.
  • 그럼 남아있는 쪼갠 문자열들을 for 문으로 하나씩 탐색하면서 , 로 구분해줘서 , 로 연결되어있는 숫자 형태의 문자열을 분리해준다.ㅁ\
    분리해준 숫자형태의 문자열을 for문을 돌려주면서 숫자 형태의 문자열이 answer라는 리스트에 있는지 없는지 확인해주고 없으면 추가해준다.
def solution(s):
    answer = []
    s = s[2:-2]
    s = s.split('},{')
    print(s)
    s.sort(key=len)
    print(s)
    for i in s:
        data = i.split(',')
        print('data:',data)
        for j in data:
            if int(j) not in answer:
                answer.append(int(j))
    return answer
반응형