https://www.acmicpc.net/problem/1213
ํฐ๋ฆฐ๋๋กฌ ํน์ง์ ๋ํ ๋ฌธ์ . ๋์ด๋์ ๋ง๋ ๋ฌธ์ ๊ฐ๋ค.
์์ด๋์ด
- ์ํ๋ฒณ string์ด ์ฃผ์ด์ก์ ๋, ํฐ๋ฆฐ๋๋กฌ์ ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ๋จผ์ ํ์ธํ๋ค.
๋ง์ฝ ๋ฌธ์์ด์์ ์ํ๋ฒณ์ ๊ฐ์๊ฐ ํ์์ธ ๊ฒ 2๊ฐ ์ด์ ์กด์ฌํ๋ค๋ฉด, ํฐ๋ฆฐ๋๋กฌ์ผ๋ก ๋ง๋ค ์ ์๋ค.
- ํฐ๋ฆฐ๋๋กฌ์ ์, ์ค๊ฐ, ๋ค 3๊ฐ์ง ํํธ๋ก ๋ถ๋ฅํ๊ณ ํฉ์ณ์ ์์ฑ์์ผ ์ค๋ค.
์ ์ฒด ์ฝ๋
english_name = list(input())
visited = [0] * 26
for e in english_name:
visited[ord(e) - 65] += 1
count = 0
for i in range(26):
if visited[i] % 2 == 1:
count += 1
if count >= 2: #์ํ๋ฒณ์ ๊ฐ์๊ฐ ํ์์ธ ๊ฒ์ด ๋๊ฐ ์ด์์ด๋ฉด ํฐ๋ฆฐ๋๋กฌ ์๋จ
print("I'm Sorry Hansoo")
else:
front = ''
middle = ''
back = ''
for i in range(26):
if visited[i] % 2 == 1: #์ํ๋ฒณ ๊ฐ์๊ฐ ํ์์ผ ๋
front = front + chr(i + 65) * (visited[i] // 2)
back = chr(i + 65) * (visited[i] // 2) + back
middle = chr(i + 65)
else:
front = front + chr(i + 65) * (visited[i] // 2)
back = chr(i + 65) * (visited[i] // 2) + back
print(front + middle + back)
์ฝ๋ ์ค๋ช
count = 0
for i in range(26):
if visited[i] % 2 == 1:
count += 1
๋ฌธ์์ด์ ๊ฐ ์ํ๋ฒณ์ ๊ฐ์๊ฐ ํ์์ธ์ง ํ์ธํ๊ณ ์นด์ดํธํด ์ค๋ค.
if count >= 2: #์ํ๋ฒณ์ ๊ฐ์๊ฐ ํ์์ธ ๊ฒ์ด ๋๊ฐ ์ด์์ด๋ฉด ํฐ๋ฆฐ๋๋กฌ ์๋จ
print("I'm Sorry Hansoo")
else:
front = ''
middle = ''
back = ''
for i in range(26):
if visited[i] % 2 == 1: #์ํ๋ฒณ ๊ฐ์๊ฐ ํ์์ผ ๋
front = front + chr(i + 65) * (visited[i] // 2)
back = chr(i + 65) * (visited[i] // 2) + back
middle = chr(i + 65)
else:
front = front + chr(i + 65) * (visited[i] // 2)
back = chr(i + 65) * (visited[i] // 2) + back
print(front + middle + back)
์ฃผ์๊ณผ ๊ฐ์ด ์ํ๋ฒณ์ ๊ฐ์๊ฐ ํ์์ธ ๊ฒ ๋ ๊ฐ ์ด์์ด๋ฉด ํฐ๋ฆฐ๋๋กฌ์ด ๋ถ๊ฐ๋ฅํ๋ค.(์ AAABCC, AAABBB)
ํฐ๋ฆฐ๋๋กฌ์ด ๊ฐ๋ฅํ๋ฉด, ์ํ๋ฒณ ์์๋๋ก ํฐ๋ฆฐ๋๋กฌ์ ๋ง๋ค์ด์ค๋ค. ๋ง๋ค๊ธฐ ํธํ๋ ค๊ณ ์, ์ค๊ฐ, ๋ค ๋ถ๋ถ์ ๋๋ ์ ๋ง๋ค์๋ค.
'๐งฉ Problem Solving > [๋ฐฑ์ค]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1254 ํฐ๋ฆฐ๋๋กฌ ๋ง๋ค๊ธฐ + ํฐ๋ฆฐ๋๋กฌ ํ์ธ๋ฒ (python ํ์ด์ฌ) (0) | 2025.02.08 |
---|---|
[๋ฐฑ์ค] 1244 ์ค์์น ์ผ๊ณ ๋๊ธฐ (python ํ์ด์ฌ) (0) | 2025.01.26 |
[๋ฐฑ์ค] 4963 ์ฌ์ ๊ฐ์ (python ํ์ด์ฌ) (1) | 2025.01.24 |
[๋ฐฑ์ค] 30804 ๊ณผ์ผ ํํ๋ฃจ (python ํ์ด์ฌ) (0) | 2025.01.22 |
[๋ฐฑ์ค] 2563 ์์ข ์ด (python ํ์ด์ฌ) (0) | 2024.04.01 |