๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€

[๋ฐฑ์ค€] 1213๋ฒˆ ํŒฐ๋ฆฐ๋“œ๋กฌ ๋งŒ๋“ค๊ธฐ (Python)

mallin 2024. 7. 22. 19:29

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)

 

๋‚˜๋Š” ์ฝ”๋“œ ๊ธธ์ด๊ฐ€ ๊ธธ์–ด์ง€๋”๋ผ๋„ ๋ฉ”๋ชจ๋ฆฌ๋ž‘ ์‹œ๊ฐ„์„ ์ ๊ฒŒ ์“ฐ๋Š”๊ฒŒ ๋” ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ–ˆ๋‹ค