๋ฌธ์ ๋งํฌ: https://programmers.co.kr/learn/courses/30/lessons/64065
๋ฌธ์ ์ค๋ช
ํํ (a1, a2, a3, a4)๋ฅผ ํํํ๋ ์งํฉ์ ์์์ ๊ฐ์๊ฐ ์์ ์์๋๋ก ์ ๋ ฌํ๋ฉด {{a1}, {a1, a2}, {a1, a2, a3}, {a1, a2, a3, a4}}๊ฐ ๋ฉ๋๋ค. ์ด๋ ์งํฉ์์ ํํ์ ๊ตฌํ๋ ๋ฐฉ๋ฒ์, {ai} = s[i] - s[i - 1] ์ ๋๋ค. (ํธ์์ ์ธ๋ฑ์ค๋ฅผ 1๋ถํฐ ์นด์ดํธํ์ต๋๋ค. ) ์๋ฅผ ๋ค์ด i๋ 3์ผ ๋, s[3] - s[2] = {a1, a2, a3} - {a1, a2} = {a3}์ ๋๋ค.
๋ฐ๋ผ์ ์ฃผ์ด์ง s์ ์์๋ค์ ๋ฆฌ์คํธ์ ๋ด์์ ์์(์งํฉ)์ ๊ฐ์๊ฐ ์์ ์์๋๋ก ์ ๋ ฌํฉ๋๋ค. {ai} = s[i] - s[i - 1]์ ์ด์ฉํด์ ํํ์ ์์๋ฅผ ์์์๋ถํฐ ๊ตฌํฉ๋๋ค.
๋ฌธ์์ด ํํ๋ฅผ ๋ฆฌ์คํธ๋ก ๋ณํํ๊ธฐ ์ํด์ ast.literal_eval()์ ์ฌ์ฉํ์ต๋๋ค.
์์ค์ฝ๋
import ast
def solution(s):
answer = []
s = "[" + s[1:-1] + "]"
s = ast.literal_eval(s) # s์ ์์๋ค์ ๋ฆฌ์คํธ๋ก ๋ณํํ์ฌ ์ ์ฅ
s.sort(key=lambda x: len(x)) # ์์์ ๊ฐ์๊ฐ ์์ ์์๋๋ก s ์ ๋ ฌ
answer.append(list(s[0])[0])
for i in range(0, len(s) - 1):
answer.append(list(s[i + 1] - s[i])[0])
return answer
728x90