본문 바로가기

알고리즘/프로그래머스(Python)

[알고리즘] 프로그래머스 튜플 / python

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

 

프로그래머스

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

programmers.co.kr

 

📌풀이 과정

맨앞 '{{'와 맨뒤 '}}'를 잘라준다. 그리고 '},{'을 기준으로 split하면 괄호문자가 모두 사라진다.

s는 현재 ','를 포함한 문자열 원소들이다. 👉[ '1', '1,2', '1,2,3' ]

반복문에 들어오는 원소마다 ','을 기준으로 split해준다. 👉[ '1, 2' ]가 들어온다면 [ '1', '2' ]로 만든다.

answer 배열에 차례대로 append해준다.

 

def solution(s):
    answer = []
    s = s[2:-2]
    s = s.split("},{")
    s.sort(key = len)
    for i in s:
        ii = i.split(',')
        for j in ii:
            if int(j) not in answer:
                answer.append(int(j))
    return answer

 

 

📌다른 풀이

정규표현식을 이용한 풀이다.

findall메소드는 정규식과 매치되는 모든 문자열을 리스트로 돌려준다.

re.findall("\d+", j) 👉 숫자에 해당한다면 리스트로 돌려줌

 

import re
 
def solution(s):
    answer = []
    a = s.split(',{')
    a.sort(key = len)
    for j in a:
        numbers = re.findall("\d+", j)
        for k in numbers:
            if int(k) not in answer:
                answer.append(int(k))
    return answer