ํ์ด์ฌ์๋ ์ ๋ง ์ ์ฉํ ํจ์๊ฐ ๋ง์ต๋๋ค. ๊ทธ ์ค Counter ๋ ์ ๊ฐ ์๊ฐํ๊ธฐ์ ๊ฐ์ฅ ์ ์ฉํ ํจ์ ์ค์ ํ๋๋ผ๊ณ ์๊ฐํฉ๋๋ค.
์ด๋ฒ ๊ธ์์๋ Collections ๋ชจ๋ ์ค ํ๋์ธ Counter ํจ์์ ๋ํด์ ์์๋ณด๊ณ 2019 ์นด์นด์ค ๊ฒจ์ธ ์ธํด์ฝ ํํ ์ ๋ฐ๋ก ์ ์ฉํด๋ณด๊ฒ ์ต๋๋ค.
๊ทธ๋ผ ๋ ์ธ ๋๋์ฝ๋!
Collections ์ Counter()
Counter ๋ ๋ฆฌ์คํธ๋ ๋ฌธ์์ด์ ๊ฐฏ์๋ฅผ dict ํ์ ์ผ๋ก ๋ฐํํด์ฃผ๋ ํจ์์ ๋๋ค.
๋ง๋ก ๋ฐฑ๋ฒ ์ค๋ช ํ๋ ๊ฒ๋ณด๋ค ํ๋ฒ์ ์์ ๊ฐ ๋ณด๋ ๊ฒ์ด ๋ ์ข๊ฒ ์ฃ ?
Counter(["I", "am", "Iron", "man", "!", "!"])
# Counter({'!': 2, 'I': 1, 'am': 1, 'Iron': 1, 'man': 1})
Counter(["I", "am", "Iron", "man", "!", "!"])["!"]
# 2
Counter("I am Iron man !!")
# Counter({' ': 4, 'I': 2, 'a': 2, 'm': 2, 'n': 2, '!': 2, 'r': 1, 'o': 1})
most_common() ์ ์ด์ฉํด์ ๊ฐ์ฅ ๊ฐฏ์๊ฐ ๋ง์ ๊ฒ๋ค์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐ์ ์๋ ์์ต๋๋ค.
Counter("I am Iron man !!").most_common(1)
# [(' ', 4)]
Counter("I am Iron man !!").most_common(3)
# [(' ', 4), ('I', 2), ('a', 2)]
์ด๊ฒ ๋ค์ ๋๋ค. ์์ฃผ ์ฝ์ฃ ? ๊ทธ๋ผ ๋ฌธ์ ์ ์ ์ฉํด๋ณด์ฃ .
๋ฌธ์ ํ์ด
๋ฌธ์ ๋ 2019 ์นด์นด์ค ๊ฒจ์ธ ์ธํด์ฝ ํํ ์ ๋๋ค.
๋ฌธ์ ์ ๋ํ ์ค๋ช ์ ์๋ตํฉ๋๋ค.
from collections import Counter
import re
def solution(s):
nums = re.findall("\d+", s)
return [int(x[0]) for x in sorted(Counter(nums).items(), key=lambda x: x[1], reverse=True)]
re ๋ชจ๋์ ์ด์ฉํด์ ์ซ์๋ค๋ง ์ถ์ถํ ํ, Counter ํจ์๋ฅผ ํตํด ๊ฐ ๋ฌธ์์ ๋ํ ๊ฐฏ์๋ฅผ dict ํ์ ์ผ๋ก ๋ฐ์ต๋๋ค.
์ดํ sorted ํจ์๋ฅผ ์ด์ฉํด์ ์ ๋ ฌํด์ค๋๋ค.
Counter ํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋ฌธ์์ด์ด ์ฃผ์ด์ก์ ๋ ํ๋ํ๋ for ๋ฌธ ๋๋ ค์ ๊ฐฏ์๋ฅผ ์ ํ์๊ฐ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ํ์ค๋ก ์์ฃผ ๊ฐ๋จํ๊ฒ ๋ฌธ์์ด ๊ฐฏ์๋ฅผ ์ ์ ์์ฃ .
๊ทธ๋ผ ์ค๋์ ์ฌ๊ธฐ๊น์ง!
'์๊ณ ๋ฆฌ์ฆ > ์ ์ฉํ ํ์ด์ฌ ํจ์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] re ๋ชจ๋ ์ฌ์ฉ๋ฒ feat. [3์ฐจ] ํ์ผ๋ช ์ ๋ ฌ (3) | 2023.03.09 |
---|