파이썬 알고리즘 254번 | [프로그래머스 튜플 ]

Yunny.Log ·2022년 8월 25일
0

Algorithm

목록 보기
259/318
post-thumbnail

254. 2019 카카오 개발자 겨울 인턴십 튜플

1) 어떤 전략(알고리즘)으로 해결?

  • 문자열 처리

2) 코딩 설명

  • 문자열 처리를 적절히 해주면 된다.

<내 풀이>


def solution(s):
    answer = []
    s=list(s.split("{"))
    # print(s)
    s.sort(key = lambda x : len(x))
    removed = ['', '}',","]
    news = []
    for ss in s : 
        if(len(ss)>0 and "," in ss) :
            ss=list(ss.split(","))
            for sss in ss : 
                sss=list(sss)
                while removed[0] in sss : 
                    sss.remove(removed[0])
                while removed[1] in sss : 
                    sss.remove(removed[1])
                if len(sss)>0 and "".join(sss) not in news: 
                    news.append("".join(sss))
        else : 
                ss=list(ss)
                while removed[0] in ss : 
                    ss.remove(removed[0])
                while removed[1] in ss : 
                    ss.remove(removed[1])
                if len(ss)>0 and "".join(ss) not in news: 
                    news.append("".join(ss)) 
    news = list((news))
    for n in news :
        answer.append(int(n))
    return answer

다른 분의 풀이

def solution(s):
    answer = []
    
    s_list = s.replace("{", "").replace("}}", "").split("},")
    s_list.sort(key=len)
    
    for st in s_list:
        st_li = list(map(int, st.split(',')))
        for num in st_li:
            if num not in answer:
                answer.append(num)
    
    return answer

<반성 점>

  • 문제 분석을 안하고 들어갔더니 고려하지 못하는 부분들이 많았다. 무조건 태블릿에 설계하고 들어가자.
  • ㅋㅋㅋㅋㅋ 너무 길고 쓸데없는 과정이 많았다 ㅠㅠ
  • replace 기능을 사용해서 문자열을 처리해주자!!!!!!!!!!!!

설계가 반이다!

<배운 점>

  • 파이썬 key 기준 정렬 복습!

s.sort(key = lambda x : len(x))
list.sort(key = lambda x : len(x))
길이기준 정렬

문자열 정제 / 정리할 때 replace 생각 !

0개의 댓글