๋ฌธ์ ์ค๋ช
์ ์์๋ ์๋์ ์์์๋ ์ด๊ฑฐ ๋๋ ์ด๋ค ์์๋ฅผ ๋ฐ๋ฅด๋ ์์๋ค์ ๋ชจ์์ ํํ(tuple)์ด๋ผ๊ณ ํฉ๋๋ค. n๊ฐ์ ์์๋ฅผ ๊ฐ์ง ํํ์ n-ํํ(n-tuple)์ด๋ผ๊ณ ํ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ด ํํํ ์ ์์ต๋๋ค.
- (a1, a2, a3, ..., an)
์์์ ๊ฐ์๊ฐ 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 ์ดํ์ธ ๊ฒฝ์ฐ๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋๋ค.
[์ ์ถ๋ ฅ ์]
s | result |
"{{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] |
ํ์ด
def solution(s):
s = s[1:-1]
s = s.replace('},','}')
li = []; k = 0; i = 0; r = ''
for i in range(len(s)):
if s[i] == '{':
li.append([])
elif s[i] == '}':
li[k].append(int(r))
r = ''
k += 1
else :
if s[i] == ',':
li[k].append(int(r))
r = ''
continue
r += s[i]
li.sort(key = lambda x : len(x), reverse = True)
answer = []
for i in range(len(li)-1):
answer.insert(0,list(set(li[i]) - set(li[i+1]))[0])
answer.insert(0,li[len(li)-1][0])
return answer
ํ์ด ์์
1) ๋งค๊ฐ ๋ณ์ s๋ฅผ ๋ฆฌ์คํธ์ ์ ์ฅํฉ๋๋ค.
for i in range(len(s)):
if s[i] == '{':
li.append([])
elif s[i] == '}':
li[k].append(int(r))
r = ''
k += 1
else :
if s[i] == ',':
li[k].append(int(r))
r = ''
continue
r += s[i]
2) ๋ฆฌ์คํธ์์ ์์์ธ ๋ฆฌ์คํธ๋ค์ ์์ ๊ฐ์ ๋ณ๋ก ์ ๋ ฌํฉ๋๋ค.
li.sort(key = lambda x : len(x), reverse = True)
3) set() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฐจ์งํฉ์ ๊ตฌํฉ๋๋ค.
for i in range(len(li)-1):
answer.insert(0,list(set(li[i]) - set(li[i+1]))[0])
answer.insert(0,li[len(li)-1][0])
์ฌ์ฉ๋ ๊ฐ๋
* ์ฌ์ฉ์ ์ ์๋ก ๋ฆฌ์คํธ ์ ๋ ฌํ๊ธฐ
'Developer > ๐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค/python] ํผ๋ณด๋์น ์ (0) | 2020.06.22 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค/python] ์ต์๊ฐ ๋ง๋ค๊ธฐ (0) | 2020.06.22 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] - JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ (0) | 2020.06.21 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] - ๋ค์ ํฐ ์ซ์ (0) | 2020.06.21 |
[ํ๋ก๊ทธ๋๋จธ์ค/python] ์์ฅ (0) | 2020.06.18 |