본문 바로가기
알고리즘 문제풀이/프로그래머스

[프로그래머스 2019 카카오 개발자 겨울 인턴쉽] 튜플

by m2162003 2021. 1. 19.

programmers.co.kr/learn/courses/30/lessons/64065?language=python3

 

코딩테스트 연습 - 튜플

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

c++로 문자열 처리가 넘 어려워서...파이썬을 사용했다.

역시 파이썬이 문자열 처리하기엔 너무 편하다 ㅠㅠ

파이썬으로 문자열 처리를 많이 안해봐서 코드가 번잡하다. 

 

++ list sort하기

리스트 안에 sublist의 길이에 따라 오름차순으로 정렬하는법

a.sort(key=len)

def solution(s):
    answer = []
    s = s[2:len(s)-2]
    
    total = []
    for e in s.split('},{'):
        tmp = []
        for num in e.split(','):
            tmp.append(int(num))
        total.append(tmp)
        
    total.sort(key=len)
    
    for li in total:
        if len(li) == 1:
            answer.append(li[0])
        else:
            for el in li:
                if el in answer:
                    continue
                else:
                    answer.append(el)
    return answer

 

그래서 다른 사람 코드를 참고하여 다시 풀어봤다.

def solution(s):
    answer = []
    list_s = s.lstrip('{').rstrip('}').split('},{')
    
    list_num = []
    for s in list_s:
        list_num.append(s.split(','))
        
    list_num.sort(key=len)
    for i in list_num:
        for j in range(len(i)):
            if int(i[j]) not in answer:
                answer.append(int(i[j]))
    return answer

댓글