Data house

[python] 세개의 구분자 - re 정규식 본문

Computer Knowledge/코테 대비 오답노트

[python] 세개의 구분자 - re 정규식

l._.been 2023. 5. 20. 16:21
728x90
문제

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

 

프로그래머스

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

programmers.co.kr

 

나의 풀이
def solution(myStr):
    
    result = []
    re =[]
    st = ''
    for i in myStr:
        if i in ['a','b','c']:
            result.append(st)
            st = ''
        else:
            st += i
    result.append(st)
    
    for i in result:
        if i != '':
            re.append(i)
    
    return re or ["EMPTY"]

더러운 나의 코드..

왜 이렇게 짯을까..

a,b,c를 차라리 a로 다 바꾸고 나서 split으로 a를 없애도 됐을텐데

생각없이 짠 코드라 숙연해진다

 

새로 고친 풀이
import re
def solution(myStr):
    arr = [i for i in re.split('a|b|c', myStr) if i]
    
    return arr or ["EMPTY"]

더 조사해보니 re 메서드를 사용해서 간단하게 구분자를 분리해낼 수 있었다. ㅎㅎ

 

참고로 다시 re에 대해서 공부하면 좋을 것 같다

https://docs.python.org/ko/3/library/re.html