https://www.acmicpc.net/problem/1213
๐ ๋ฌธ์
์ํ์์ ์๋ฌธ๋น์ ์๋ก ์ฌ๋ํ๋ ์ฌ์ด์ด๋ค.
์ํ์๋ ์ธ์์์ ํฐ๋ฆฐ๋๋กฌ์ธ ๋ฌธ์์ด์ ๋๋ฌด ์ข์ํ๊ธฐ ๋๋ฌธ์, ๋์ ๋ฐฑ์ผ์ ๊ธฐ๋ ํด์ ์๋ฌธ๋น์ ํฐ๋ฆฐ๋๋กฌ์ ์ ๋ฌผํด์ฃผ๋ ค๊ณ ํ๋ค.
์๋ฌธ๋น์ ์ํ์์ ์์ด ์ด๋ฆ์ผ๋ก ํฐ๋ฆฐ๋๋กฌ์ ๋ง๋ค๋ ค๊ณ ํ๋๋ฐ, ์ํ์์ ์์ด ์ด๋ฆ์ ์ํ๋ฒณ ์์๋ฅผ ์ ์ ํ ๋ฐ๊ฟ์ ํฐ๋ฆฐ๋๋กฌ์ ๋ง๋ค๋ ค๊ณ ํ๋ค.
์๋ฌธ๋น์ ๋์ ์ํ์์ ์์ด ์ด๋ฆ์ ํฐ๋ฆฐ๋๋กฌ์ผ๋ก ๋ฐ๊พธ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐ ์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ํ์์ ์์ด ์ด๋ฆ์ด ์๋ค. ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ๋ ์ต๋ 50๊ธ์์ด๋ค.
๐ ์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๋ฌธ์ ์ ์ ๋ต์ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ๋ถ๊ฐ๋ฅํ ๋๋ "I'm Sorry Hansoo"๋ฅผ ์ถ๋ ฅํ๋ค. ์ ๋ต์ด ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ์๋ ์ฌ์ ์์ผ๋ก ์์๋ ๊ฒ์ ์ถ๋ ฅํ๋ค.
๐ ํ์ด ๋ฐฉ์
ํฐ๋ฆฐ๋๋กฌ์ด๋ ?
ํ๊ตญ๋ง๋ก๋ ํ๋ฌธ์ด๋ผ๊ณ ํ๋๋ฐ ์์ผ๋ก ์ฝ์ด๋ ๋ฐ๋๋ก ์ฝ์ด๋ ๊ฐ์ ๋ฌธ์ฅ์ ์๋ฏธํ๋ค.
์๋ฅผ ๋ค์ด์ level, noon, eye ๋ฑ๋ฑ์ด ์๋ค.
์ฌ๊ธฐ ๋ฌธ์ ์์๋ ์ ๋ ฅ๋ฐ์ ํ์์ ์์ด ์ด๋ฆ์ ํฐ๋ฆฐ๋๋กฌ์ผ๋ก ๋ฐ๊พธ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ๋๋ค.
๋ง์ฝ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ์๋ I'm Sorry Hansoo ๋ฅผ ์ถ๋ ฅํ๋ค
ํต์ฌ ์์ด๋์ด๋ ํฐ๋ฆฐ๋๋กฌ์ ๊ฒฝ์ฐ
์์ฒ๋ผ ๋ค์ง์์ ๋ ๊ฐ๊ธฐ ๋๋ฌธ์
ํฐ๋ฆฐ๋๋กฌ ๋ฌธ์์ด + (ํ์์ธ ๊ฒฝ์ฐ ์ค๊ฐ ๋ฌธ์) + ๋ค์ง์ ํฐ๋ฆฐ๋๋กฌ ๋ฌธ์์ด ์ ํฉ์ณ์ ๊ฐ์ ๊ตฌํด์ฃผ๋ฉด ๋๋ค
์๋ฅผ ๋ค์ด LEVEL ์ธ ๊ฒฝ์ฐ
ํฐ๋ฆฐ๋๋กฌ ๋ฌธ์์ด = LE ์ ์ค๊ฐ ๋ฌธ์ = V ๋ฅผ ๊ตฌํ๊ณ
LE + V + EL = LEVEL ์ด ์์ฑ๋๋ค
ํ์ด ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. ํ์ ์์ด ์ด๋ฆ์ ์ ๋ ฅ๋ฐ์์ ์ํ๋ฒณ๋ณ๋ก ๊ฐ์ ์ธ๊ธฐ
2. ํฐ๋ฆฐ๋๋กฌ์ผ๋ก ๋ฐ๊ฟ ์ ์๋์ง ์๋์ง ํ๋จ (์ด ๊ณผ์ ์์ ์ค๊ฐ ๋ฌธ์์ด ์์ถํ๊ธฐ)
2-1. (ํฐ๋ฆฐ๋๋กฌ์ผ๋ก ๋ฐ๊ฟ ์ ์๋ ๊ฒฝ์ฐ) I'm Sorry Hansso ์ถ๋ ฅ ํ ํ๋ก๊ทธ๋จ ์ข ๋ฃ
2-2. (ํฐ๋ฆฐ๋๋กฌ์ผ๋ก ๋ฐ๊ฟ ์ ์๋ ๊ฒฝ์ฐ) 3๋ฒ์ผ๋ก ์ด๋
3. ์ ๋ต์ด ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ์๋ ์ฌ์ ์์ผ๋ก ์์๋ ๊ฒ์ ์ถ๋ ฅํด์ผ ํ๋ฏ๋ก ์ ๋ ฌ ํ 1๋ฒ์์ ๊ตฌํ ๊ฐ์ // 2 ๋ฅผ ๊ณฑํด์ ์ฐจ๋ก๋๋ก ํฐ๋ฆฐ๋๋กฌ ๋ฌธ์์ด ๋ง๋ค๊ธฐ
4. 3๋ฒ์์ ๊ตฌํ ํฐ๋ฆฐ๋๋กฌ ๋ฌธ์์ด + 2๋ฒ์์ ๊ตฌํ ์ค๊ฐ ๋ฌธ์์ด + ๋ค์ง์ 3๋ฒ์์ ๊ตฌํ ํฐ๋ฆฐ๋๋กฌ ๋ฌธ์์ด ๋ก ์ ๋ต ๊ตฌํ๊ธฐ
๐ ์ฝ๋
name = input()
alphabet = {}
for n in name:
if (n in alphabet) == False:
alphabet[n] = 0
alphabet[n] = alphabet[n] + 1
mid = ''
for key, value in alphabet.items():
if value % 2 != 0:
if mid != '':
print("I'm Sorry Hansoo")
exit()
mid = key
result = ''
for key, value in sorted(alphabet.items()):
result += key * (value // 2)
print(result + mid + result[::-1])
1๋ฒ ๊ณผ์ (ํ์ ์์ด ์ด๋ฆ์ ์ ๋ ฅ๋ฐ์์ ์ํ๋ฒณ๋ณ๋ก ๊ฐ์ ์ธ๊ธฐ) ์
for ๋ฌธ์ด ์๋๋ผ collections ๋ชจ๋์ counter ๋ฅผ ์ฌ์ฉํด์๋ ํ ์ ์๋๋ฐ,
๊ทธ๋ฐ ๊ฒฝ์ฐ for ๋ฌธ์ ์ฌ์ฉํ์ ๋๋ณด๋ค ์ฝ๋ ๊ธธ์ด๋ ์ค์ด๋ค์ง๋ง ๋ฉ๋ชจ๋ฆฌ์ ์๊ฐ์ ์กฐ์ค๊ธ ๋ ๋ง์ด ์ด๋ค
from collections import Counter
name = input()
alphabet = Counter(name)
๋๋ ์ฝ๋ ๊ธธ์ด๊ฐ ๊ธธ์ด์ง๋๋ผ๋ ๋ฉ๋ชจ๋ฆฌ๋ ์๊ฐ์ ์ ๊ฒ ์ฐ๋๊ฒ ๋ ์ค์ํ๋ค๊ณ ์๊ฐํด์ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๋ค
'๐ฉ๐ปโ๐ป ์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 15904๋ฒ UCPC๋ ๋ฌด์์ ์ฝ์์ผ๊น ? (Python) (0) | 2024.08.06 |
---|---|
[๋ฐฑ์ค] 1202๋ฒ ๋ณด์ ๋๋ (Python) (0) | 2024.08.01 |
[๋ฐฑ์ค] 1439๋ฒ ๋ค์ง๊ธฐ (Python) (0) | 2024.07.25 |
[๋ฐฑ์ค] 1715๋ฒ ์นด๋ ์ ๋ ฌํ๊ธฐ (Python) (2) | 2024.07.24 |
[๋ฐฑ์ค] 1789๋ฒ ์๋ค์ ํฉ (Python) (0) | 2024.07.23 |