[Python ์ฝํ ์ ๋ฌธ] 3. (๋ฌธ์ 4๋ฒ) ํฐ๋ฆฐ๋๋กฌ ํ์ธ
by Hi.Claire๐ฅ๏ธ ์ ๋ฌธ์๋ฅผ ์ํ ์ฝ๋ฉํ ์คํธ ํต์ฌ - Python (๊นํ์, ์ธํ๋ฐ)
์น์ 3. ํด์(Hash)
(๋ฌธ์ 4๋ฒ) ํฐ๋ฆฐ๋๋กฌ ํ์ธ
์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ฉด ํด๋น ๋ฌธ์์ด์ ๋ฌธ์๋ค์ ์์๋ฅผ ์ฌ๋ฐฐ์นํด์ ํฐ๋ฆฐ๋๋กฌ(ํ๋ฌธ)์ ๋ง๋ค ์ ์๋์ง๋ฅผ ํ์ธํ๊ณ ์ถ์ต๋๋ค. ๋ง์ฝ "abbac"์ ๊ฐ์ ๋ฌธ์๋ค์ "abcba"๋ก ์ฌ๋ฐฐ์นํ๋ฉด ํฐ๋ฆฐ๋๋กฌ์ ๋ง๋ค ์ ์์ต๋๋ค.
๋งค๊ฐ๋ณ์ s์ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ฉด ํด๋น ๋ฌธ์์ด์ด ์ฌ๋ฐฐ์น๋ฅผ ํตํด ํฐ๋ฆฐ๋๋กฌ์ ๋ง๋ค ์ ์์ผ๋ฉด True๋ฅผ, ๋ง๋ค ์ ์์ผ๋ฉด False๋ฅผ ๋ฐํํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
์ ์ถ๋ ฅ ์
s | answer |
"abacbaa" | True |
"abaaceeffkckbaa" | True |
"abcabbcc" | False |
"sgsgsgabaaaecececekefefkccckbsgaaffsgsg" | True |
"aabcefagcefbcabbcc"
|
False |
์ ํ์ฌํญ
- s์ ๊ธธ์ด๋ 1,000์ ๋์ง ์์ต๋๋ค.
ํ์ด
๋ถ์
Counter() ํจ์๋ก ๋ฌธ์์ ๋น๋์๋ฅผ ๊ตฌํ๋ค.
ํฐ๋ฆฐ๋๋กฌ์ ๋ง๋ค ์ ์์ผ๋ ค๋ฉด ๋น๋์๊ฐ ํ์์ธ ๋ฌธ์๊ฐ ์๊ฑฐ๋ 1๊ฐ๋ง ์กด์ฌํด์ผ ํ๋ค. (ํ๋ฌธ์ ์ค์ฌ๋ถ์ ์ค๋ ๋ฌธ์๋ง ๋น๋์๊ฐ ํ์ ๋๋ ์ง์๋ก ์กด์ฌํ ์ ์๋ค.)
๋น๋์๊ฐ ํ์์ธ ๋ฌธ์๊ฐ 1๊ฐ ์ดํ๋ฉด True๋ฅผ, 1๊ฐ ์ด๊ณผ๋ฉด False๋ฅผ ๋ฐํํ๋ค.
ํ์ด
from collections import Counter
def solution(s):
count = Counter(s)
oddCount = 0
for val in count.values():
if val % 2 != 0:
oddCount += 1
if oddCount > 1:
return False
return True
print(solution("abacbaa"))
print(solution("abaaceeffkckbaa"))
print(solution("abcabbcc"))
print(solution("sgsgsgabaaaecececekefefkccckbsgaaffsgsg"))
print(solution("aabcefagcefbcabbcc"))
True
True
False
True
False
์ ๋ต ํ์ด
๋ถ์
์์์๋ถํฐ ์ฝ์ผ๋ ๋ค์์๋ถํฐ ์ฝ์ผ๋ ๋๊ฐ์ ๋ฌธ์์ด์ ํฐ๋ฆฐ๋๋กฌ(ํ๋ฌธ)์ด๋ผ๊ณ ํ๋ค.
ํฐ๋ฆฐ๋๋กฌ์ ๋ง๋๋ ค๋ฉด ์์ชฝ์ ๊ฐ์ ๋ฌธ์๋ฅผ ๋์นญ์ผ๋ก ๋ฐฐ์นํด์ผ ํ๋ฉฐ, ์ค์ฌ๋ถ์ ์ค๋ ๋ฌธ์๋ง ํ์๋ก ์กด์ฌํ ์ ์๋ค.
์ฆ, ๋ชจ๋ ๋ฌธ์์ ๋น๋์๊ฐ ์ง์์ด๊ฑฐ๋ ์ค์ง ํ๋์ ๋ฌธ์๋ง ๋น๋์๊ฐ ํ์์ฌ์ผ ํ๋ค.
ํ์ด
from collections import Counter
def solution(s):
# ์
๋ ฅ์ผ๋ก ๋ฐ์ ๋ฌธ์์ด์ ๊ฐ ๋ฌธ์์ ๋น๋์๋ฅผ ๊ตฌํ๋ค.
count = Counter(s)
# ๋น๋์๊ฐ ํ์์ธ ๋ฌธ์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ค.
odd = 0
for key in count:
if count[key] % 2 == 1:
odd += 1
# ๋น๋์๊ฐ ํ์์ธ ๋ฌธ์๊ฐ 1๊ฐ ์ดํ์ผ ๋์๋ง True๋ฅผ ๋ฐํํ๋ค.
return odd <= 1
print(solution("abacbaa"))
print(solution("abaaceeffkckbaa"))
print(solution("abcabbcc"))
print(solution("sgsgsgabaaaecececekefefkccckbsgaaffsgsg"))
print(solution("aabcefagcefbcabbcc"))
True
True
False
True
False
'๐ ์ฝ๋ฉํ ์คํธ > ์ ๋ฌธ์๋ฅผ ์ํ ์ฝ๋ฉํ ์คํธ ํต์ฌ - Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python ์ฝํ ์ ๋ฌธ] 3. (๋ฌธ์ 6๋ฒ) ๋ ์์ ํฉ (2) | 2024.09.17 |
---|---|
[Python ์ฝํ ์ ๋ฌธ] 3. (๋ฌธ์ 5๋ฒ) ํฐ๋ฆฐ๋๋กฌ ๊ธธ์ด (1) | 2024.09.08 |
[Python ์ฝํ ์ ๋ฌธ] 3. (๋ฌธ์ 3๋ฒ) ์๊ธฐ ๋ถ์ด์ (0) | 2024.09.01 |
[Python ์ฝํ ์ ๋ฌธ] 3. (๋ฌธ์ 2๋ฒ) ๋น๋์(ver 2) (0) | 2024.08.31 |
[Python ์ฝํ ์ ๋ฌธ] 3. (๋ฌธ์ 1๋ฒ) ๋น๋์(ver 1) (0) | 2024.07.06 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
Claire's Study Note
Hi.Claire