daniel7481의 개발일지

[프로그래머스] 튜플 본문

프로그래머스

[프로그래머스] 튜플

daniel7481 2022. 7. 19. 23:12
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

2019 카카오개발자 겨울 인턴쉽 문제이다. 프로그래머스를 풀면서 느끼는 점은 시간 제한 측면에서 굉장히 널널하다는 것이다. 백준을 풀때는 항상 시간 초과로 끙끙 앓았는데, 프로그래머스는 시간제한이 후한 편이라 간단하게 생각해도 풀리는 경우가 많다. 이 문제 같은 경우에는 간단한 문제였던 것 같다. 주요 관건은 입력 데이터 전처리였는데, 나같은 경우에는 먼저 앞 뒤에 있는 두 개의 괄호를 제거해준 후 남은 값들을 '},{'로 split해주었다. 이러면 a,b,c로 되어있는 str 값들이 반환되는데 이를 또 ','를 기준으로 split해주어서 전처리를 완료하였다. 다음에는 단순히 만약 answer 리스트에 존재하지 않는 값이 나오면 뒤에 있는 요소이기 때문에 따로 저장만 해두고 마지막에 append해주었다. 결과로는 무시무시한 처리 속도가 나왔지만 통과되었으니 일단 만족이다.

def solution(s):
    answer = []
    s = s[2:-2]
    s = s.split('},{')
    element = []
    for a in s:
        element.append(a.split(","))
    element.sort(key=lambda x: len(x))
    answer.append(element[0][0])
    if len(element) >= 2:
        for i in range(1, len(element)):
            stack  = ''
            for j in range(len(element[i])):
                if element[i][j] not in answer:
                    stack = element[i][j]
            answer.append(stack)
    answer = list(map(int, answer))
    return answer
반응형