2019 KAKAO DEVELOPER WINTER INTERNSHIP 튜플 파이썬

최대 1 분 소요

2019 KAKAO DEVELOPER WINTER INTERNSHIP 튜플 파이썬 풀이

바로 이전에 풀었던 뉴스클러스터링 문제와 동일한 2레벨 문제입니다.

접근방식

  1. 문자열로 주어진 입력값을 리스트로 변환해주어야 합니다.
  2. replace함수와 split함수를 활용하여 {}를 제거하고 리스트로 변환해줍니다.
  3. 변환된 리스트를 길이의 오름차순으로 정렬해줍니다.
  4. for문을 수행해서 길이를 1씩 증가시켜주고 answer 리스트에 존재하지 않을 경우
    append 시켜줍니다.

정답코드

def solution(s):
    answer = []
    s = s[:-2].replace('{', '').replace(',', ' ').split('}')

    for i, v in enumerate(s):
        s[i] = v.split()
    lg = 1

    s.sort(key=len)
    for i in s:
        if len(i) == lg:
            for j in i:
                if int(j) not in answer:
                    answer.append(int(j))
                    lg += 1
    return answer

문자열 s를 리스트로 변환하는 과정은 mauserne님의 블로그를 참고했습니다.

이번 문제는 1. 주어진 문자열을 적절하게 변형하여 리스트로 만들어주는 것

  1. 길이가 작은 것부터 숫자를 추출하면 정답을 구할 수 있는 것

크게 이 2가지를 얼마나 빨리 해결하고 찾아내느냐가 중요했던 문제라고 생각합니다.

2레벨 문제이지만, 대부분의 입력값이 string 타입으로 주어지기 때문에

정규표현식이나 split 함수를 자유롭게 활용하는 연습이 많이 필요합니다.

알고리즘도 모든 것과 마찬가지로 꾸준한 연습과 이해를 바탕으로 실력이 향상합니다.
Just do it & Keep steady

댓글남기기