https://programmers.co.kr/learn/courses/30/lessons/64065
ํ์ด๊ณผ์
์ค๋ณต๋๋ ์์๊ฐ ์๋ ํํ์ ์งํฉ๊ธฐํธ๋ก ํํ๋ ์ ๋ ฅ์ด ์ฃผ์ด์ง๋ค. ์๋ฅผ๋ค์ด ํํ์ด (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)๋ฅผ ๋ํ๋ธ๋ค.
์ฒ์์ ํํ์์ ์์๊ฐ ์์์ ์ํฅ ๋ฐ๋๋ค๋ฉด์ ์งํฉ๊ธฐํธ๋ก ์ฐ๋ฉด ์์๊ฐ ๋ฐ๋์ด๋ ๋๋ค๋ ๋ฌด์จ๋ง์ธ์ง ํท๊ฐ๋ ธ๋ค.
์ธ๋ฒ์งธ ์ผ์ด์ค๋ฅผ ๋ณด๋ฉด, [111, 20]์ {111}, {111, 20} ๋๋ {111}, {20, 111} ์ด๋ ๊ฒ ์์๊ฐ ๋ฐ๋์ด๋ ๋ชจ๋ ๊ฐ์ ํํ (111, 20)์ ๋ํ๋ธ๋ค. ํํ ์์์๋ง ์์์ ์์๋ฅผ ์งํค๋ฉด ๋๋๊ฒ์ธ๋ฐ, ์ด๋ ๋ฌธ์์ด s์์ ๊ฐ์ฅ ๋น๋ฒํ๊ฒ ๋์จ ์ซ์๋ถํฐ ์ฐจ๋ก๋๋ก ๋ฆฌ์คํธ์ ๋ด๊ธด๊ฒ์ ํ์ธํ ์ ์๋ค.
1. ์ ๊ทํํ์
๋ฌธ์์ด s์์ ์ซ์๋ง ๋ฝ์ ๋ฆฌ์คํธํ ์ํค๋ ค๊ณ ํ๋ค. ์ฃผ์ํ ์ ์ (\d)๋ง ์ฌ์ฉํด์ ๋งค์น์ํจ๋ค๋ฉด ์ผ์ด์ค 3๋ฒ์ ๊ฒฝ์ฐ ['111'] ์ด ์๋๋ผ ['1', '1', '1'] ์ผ๋ก ์ ์ฅ๋๋ค. ๋ฐ๋ผ์ ์ซ์๊ฐ 1ํ์ด์ ๋ฐ๋ณต๋๋ฉด ๋งค์น์ํค๋๋ก (\d+)๋ฅผ ์ฌ์ฉํด์ค๋ค.
s = "{{20,111},{111}}"
s = re.findall('\d+', s)
print(s) # ['20', '111', '111']
2. ์ค๋ณต์์ ์นด์ดํ
๋ฌธ์์ด "{{2},{2,1},{2,1,3},{2,1,3,4}}"์ ๋ฐํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด [2, 1, 3, 4] ์ฆ, ๊ฐ์ฅ ๋ง์ด ๋ฑ์ฅํ ํ์๋๋ก ์ ์ฅ๋์ด์๋ค. Counter๋ฅผ ์ฌ์ฉํด์ ์นด์ดํ ํด์ฃผ์๋ค.
count = Counter(s)
print(count) # Counter({'2': 4, '1': 3, '3': 2, '4': 1})
3. ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ ๋ฐ ๋ฐํ
๋จผ์ , ๋ฆฌ์คํธ ํ์์ ์ํด ๋์ ๋๋ฆฌ ํํ๋ฅผ ํํ๋ก ๋ฐ๊ฟ์ฃผ๊ณ , 1๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ณ ์ธ๋ฑ์ค 0๋ฒ์งธ ๊ฐ์ int๋ก ๋ณํํด ๋ต์ ๊ตฌํ๋ค.
์ ์ฒด ์ฝ๋
import re
from collections import Counter
def solution(s):
answer = []
s = re.findall('\d+', s)
count = Counter(s)
d = list(zip(count.keys(), count.values()))
d = sorted(d, key = lambda x:-x[1])
for e in d:
answer.append(e[0])
answer = map(int, answer)
answer = list(map(int, answer))
return answer
'๐ป๊ฐ๋ฐ๊ณต๋ถ > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS ์๊ณ ๋ฆฌ์ฆ] ํ๋ก๊ทธ๋๋จธ์ค K๋ฒ์งธ ์ (0) | 2021.09.16 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ๋น๋ฐ์ง๋ Python (์นด์นด์ค ๊ธฐ์ถ) (0) | 2021.09.09 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์คํ์ฑํ ๋ฐฉ (Python) (0) | 2021.08.13 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋๋จธ์ง ํ ์ (Python) (0) | 2021.06.24 |
๋ฐฑ์ค 9095: 1,2,3 ๋ํ๊ธฐ (DP) (0) | 2021.05.31 |