๐กsolutions )
โ ',{'๋ฅผ ๊ธฐ์ค์ผ๋ก ์งํฉ๋ณ๋ก ๋์ด์ค๋ค(split)
โ ๋ฌธ์ ๊ธธ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ค(sort)
โ ์งํฉ์ ๋ค์ด ์๋ ์์๋ค์ ๊บผ๋ด์ด ์ซ์์ธ ๊ฒฝ์ฐ์๋ answer์ ์๋ ์ง ํ์ธ ํ ์์ผ๋ฉด ๋ด์์ค๋ค.
โ
๋ค๋ฅธ ์ฌ๋ ํ์ด๋ฅผ ์ฐพ์๋ณด๋ค ๋ณด๋, ์ ๊ท ํํ์์ ํ์ฉํ ๊ฒฝ์ฐ๊ฐ ์์๋ค. ํ์ด์ฌ์ re(regular expression) ๋ชจ๋์ ์ฌ์ฉ, findall() ๋ฉ์๋๋ฅผ ํตํด ๋ฌธ์์ด์ ๊ฒ์ํ ์ ์๋ค. ์ด ๋ฌธ์ ์์๋ i๋ฅผ ๋ฐ๋ก re.findall("\d+", i)๋ก ํํํด ์ซ์๊ฐ๋ค๋ง ์ฐพ์์ ๋ฆฌ์คํธ์ ๋ด์์ค ์ ์๋ค.
๐ซcode )
def solution(s):
answer = []
a = s.split(',{')
a.sort(key = len)
tmp = ''
for i in a:
for k in i:
if k == ',':
if int(tmp) not in answer:
answer.append(int(tmp))
tmp = ''
elif k !='{' and k != '}':
tmp += k
else:
if int(tmp) not in answer:
answer.append(int(tmp))
tmp = ''
return answer
๐ description )
๋ฌธ์ ์ถ์ฒ : https://programmers.co.kr/learn/courses/30/lessons/64065
[๋ฌธ์ ์ค๋ช ]์ ์์๋ ์๋์ ์์์๋ ์ด๊ฑฐ ๋๋ ์ด๋ค ์์๋ฅผ ๋ฐ๋ฅด๋ ์์๋ค์ ๋ชจ์์ ํํ(tuple)์ด๋ผ๊ณ ํฉ๋๋ค. n๊ฐ์ ์์๋ฅผ ๊ฐ์ง ํํ์ n-ํํ(n-tuple)์ด๋ผ๊ณ ํ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ด ํํํ ์ ์์ต๋๋ค.
- (a1, a2, a3, ..., an)
ํํ์ ๋ค์๊ณผ ๊ฐ์ ์ฑ์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
- ์ค๋ณต๋ ์์๊ฐ ์์ ์ ์์ต๋๋ค. ex : (2, 3, 1, 2)
- ์์์ ์ ํด์ง ์์๊ฐ ์์ผ๋ฉฐ, ์์์ ์์๊ฐ ๋ค๋ฅด๋ฉด ์๋ก ๋ค๋ฅธ ํํ์ ๋๋ค. ex : (1, 2, 3) ≠ (1, 3, 2)
- ํํ์ ์์ ๊ฐ์๋ ์ ํํฉ๋๋ค.
์์์ ๊ฐ์๊ฐ n๊ฐ์ด๊ณ , ์ค๋ณต๋๋ ์์๊ฐ ์๋ ํํ (a1, a2, a3, ..., an)์ด ์ฃผ์ด์ง ๋(๋จ, a1, a2, ..., an์ ์์ฐ์), ์ด๋ ๋ค์๊ณผ ๊ฐ์ด ์งํฉ ๊ธฐํธ '{', '}'๋ฅผ ์ด์ฉํด ํํํ ์ ์์ต๋๋ค.
- {{a1}, {a1, a2}, {a1, a2, a3}, {a1, a2, a3, a4}, ... {a1, a2, a3, a4, ..., an}}
์๋ฅผ ๋ค์ด ํํ์ด (2, 1, 3, 4)์ธ ๊ฒฝ์ฐ ์ด๋
- {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}
์ ๊ฐ์ด ํํํ ์ ์์ต๋๋ค. ์ด๋, ์งํฉ์ ์์์ ์์๊ฐ ๋ฐ๋์ด๋ ์๊ด์์ผ๋ฏ๋ก
- {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}
- {{2, 1, 3, 4}, {2}, {2, 1, 3}, {2, 1}}
- {{1, 2, 3}, {2, 1}, {1, 2, 4, 3}, {2}}
๋ ๋ชจ๋ ๊ฐ์ ํํ (2, 1, 3, 4)๋ฅผ ๋ํ๋ ๋๋ค.
ํน์ ํํ์ ํํํ๋ ์งํฉ์ด ๋ด๊ธด ๋ฌธ์์ด s๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, s๊ฐ ํํํ๋ ํํ์ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
[์ ํ์ฌํญ]
- s์ ๊ธธ์ด๋ 5 ์ด์ 1,000,000 ์ดํ์ ๋๋ค.
- s๋ ์ซ์์ '{', '}', ',' ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ์ซ์๊ฐ 0์ผ๋ก ์์ํ๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
- s๋ ํญ์ ์ค๋ณต๋๋ ์์๊ฐ ์๋ ํํ์ ์ฌ๋ฐ๋ฅด๊ฒ ํํํ๊ณ ์์ต๋๋ค.
- s๊ฐ ํํํ๋ ํํ์ ์์๋ 1 ์ด์ 100,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- return ํ๋ ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 1 ์ด์ 500 ์ดํ์ธ ๊ฒฝ์ฐ๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋๋ค.
[์ ์ถ๋ ฅ ์]
sresult
"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{20,111},{111}}" [111, 20] "{{123}}" [123] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] ์ ์ถ๋ ฅ ์์ ๋ํ ์ค๋ช ์ ์ถ๋ ฅ ์ #1
๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #3
(111, 20)์ ์งํฉ ๊ธฐํธ๋ฅผ ์ด์ฉํด ํํํ๋ฉด {{111}, {111,20}}์ด ๋๋ฉฐ, ์ด๋ {{20,111},{111}}๊ณผ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #4
(123)์ ์งํฉ ๊ธฐํธ๋ฅผ ์ด์ฉํด ํํํ๋ฉด {{123}} ์ ๋๋ค.
์ ์ถ๋ ฅ ์ #5
(3, 2, 4, 1)์ ์งํฉ ๊ธฐํธ๋ฅผ ์ด์ฉํด ํํํ๋ฉด {{3},{3,2},{3,2,4},{3,2,4,1}}์ด ๋๋ฉฐ, ์ด๋ {{4,2,3},{3},{2,3,4,1},{2,3}}๊ณผ ๊ฐ์ต๋๋ค.