๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด/-

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํŠœํ”Œ

by syLim___ 2023. 6. 3.
728x90

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


๋ฌธ์ œ ์ดํ•ดํ•˜๊ธฐ

๋ฌธ์ œ์— ์ฃผ์–ด์ง„ ํŠœํ”Œ (2,1,3,4)์˜ n-ํŠœํ”Œ์„ ๊ตฌํ•ด๋ณด์ž.

a1 : {2}

a2 : {2,1} == {1,2}

a3 : {2,1,3} == {1,2,3} == {1,3,2} == {2,3,1} == {3,1,2} == {3,2,1}

a4 : {2,1,3,4} == {1,2,3,4} == {1,2,4,3} == {1,3,2,4} == {1,3,4,2} == ....

 

๋”ฐ๋ผ์„œ ํŠœํ”Œ (2,1,3,4)๋Š” { a1 , a2์ค‘ ํ•˜๋‚˜, a3์ค‘ ํ•˜๋‚˜, a4์ค‘ ํ•˜๋‚˜ } ์˜ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„๋  ๊ฒƒ์ด๋‹ค. (์ˆœ์„œ๋Š” ์„ž์ผ ์ˆ˜ ์žˆ์Œ)

 

๋ฌธ์ œ ์˜ˆ์ œ์—์„œ๋„ ์ด๋ ‡๊ฒŒ ์ž˜ ์„ค๋ช…๋˜์–ด ์žˆ๋‹ค.


์•„์ด๋””์–ด

์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด s์˜ ์–‘๋ '{'์™€ '}'๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

s๋ฅผ '},{' ๊ธฐ์ค€์œผ๋กœ splitํ•˜๊ณ , ๊ทธ ๋ฐฐ์—ด์„ ํฌ๊ธฐ๊ฐ€ ์ž‘์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

์ •๋ ฌํ•œ ๋ฆฌ์ŠคํŠธ๋Š” a1, a2, a3, a4, ... , an์„ ์ฐจ๋ก€๋กœ ๋‹ด๊ฒŒ ๋œ๋‹ค.

answer ๋ฆฌ์ŠคํŠธ์— [a1, a2์— ์ƒˆ๋กญ๊ฒŒ ๋“ฑ์žฅํ•˜๋Š” ์ˆ˜, a3์— ์ƒˆ๋กญ๊ฒŒ ๋“ฑ์žฅํ•˜๋Š” ์ˆ˜ ... ] ์ˆœ์œผ๋กœ ์ถ”๊ฐ€ํ•˜๋ฉด ์ •๋‹ต์ด ๋œ๋‹ค.

 


์ œ์ถœ ์ฝ”๋“œ

def solution(s):
    answer = []
    s = s.strip("{}")
    lst = s.split("},{")
    lst.sort(key = lambda x : (len(x)))
    
    for i in lst:
        for j in i.split(","):
            if int(j) not in answer:
                answer.append(int(j))
    
    return answer

 

 

728x90