๐ฉโ๐ป๐ [baekjoon] 17609๋ฒ: ํ๋ฌธ
๐๏ธย solution
import sys
"""
[์๊ฐ]
1) 14:20 ~ 14:45
[์์ฝ]
1) ์ ์ฌํ๋ฌธ: ํ ๋ฌธ์๋ฅผ ์ญ์ ํ์ฌ ํ๋ฌธ์ผ๋ก ๋ง๋ค ์ ์๋ ๋ฌธ์์ด
=> ์ ์ฌํ๋ฌธ์ธ์ง ์๋์ง ํ๋จํ๋ ํ๋ก๊ทธ๋จ ์์ฑ
2) ์ฃผ์ด์ง ๋ฌธ์์ด์ ๊ธธ์ด๋ 10๋ง, ๋ฌธ์์ด ๊ฐ์๋ ์ต๋ 30๊ฐ
=> ์ ํ ์๊ฐ์ด 1์ด๋ผ์ O(n)์ ์๊ณ ๋ฆฌ์ฆ์ ์ค๊ณ ํ์, Counter ์ฌ์ฉ ๋ถ๊ฐ
[์ ๋ต]
1) ์ฌ๋ผ์ด์ฑ ์ด์ฉํด์ ์๋ณธ๊ณผ ๋ค์ง์ ๋ฌธ์์ด์ ๋น๊ตํ๋ ๊ณผ์ ์์ ๊ฑธ๋ฌ๋ด๊ธฐ (๋ฃจํ ํ๋๋ง ์ฐ๊ฒ ๋ง๋ค ์ ์์)
- ๊ฐ ์๋ฆฌ๋ฅผ ๋์กฐํ๋ฉด ๊ฐ์ฅ ์ฒ์ ๋ค๋ฅธ ๋ฌธ์๊ฐ ๋ฑ์ฅํ๋ ์ง์ ์ ์ฐพ์์ฌ ํด๋น ๋ฌธ์๋ฅผ ์ ๊ฑฐํจ.
- ์ ๊ฑฐํ๋ ๊ฒ๋ ๋๊ฐ์ง ์ผ์ด์ค๊ฐ ๋ฐ์, ๋ ์ค ํ๋๋ง ๋ง์กฑํด๋ ์ ์ฌ ํฐ๋ฆฐ๋๋กฌ์ผ๋ก ํ์
=> ์๋ณธ์ ๋ฌธ์ ์ ๊ฑฐ
=> ์ญ๋ณธ์ ๋ฌธ์ ์ ๊ฑฐ
"""
for _ in range(int(sys.stdin.readline())):
checker1, checker2 = '', ''
text = sys.stdin.readline().rstrip()
tmp_pal = text[::-1]
# pure palindrome
if text == tmp_pal:
print(0)
continue
# similar palindrome or not
for i in range(len(text)):
if text[i] != tmp_pal[i]:
checker1 = checker1 + text[i+1:] # remove original text's char
checker2 = checker2 + tmp_pal[i+1:] # remove reversed text's char
break
checker1 += text[i]
checker2 += tmp_pal[i]
if checker1 == checker1[::-1] or checker2 == checker2[::-1]:
print(1)
else:
print(2)
๐กย idea
- 1) ์ฌ๋ผ์ด์ฑ์ ์ด์ฉํ ํ์ด
- ์๋ณธ๊ณผ ์ฌ๋ผ์ด์ฑ์ผ๋ก ๋ค์ง์ ๋ฌธ์์ด์ ์ฒ ์ ํ๋ ํ๋ ๋น๊ต (๋ฌธ์์ด ๊ธธ์ด ๋ฐ ์๊ฐ ์ ํ ๋๋ฌธ์ ์ด์ค ๋ฃจํ๋ ๋ถ๊ฐ)
linear search
ํ๋ฉด์, ์ฒ์์ผ๋ก ๋ค๋ฅธ ์ฒ ์๊ฐ ๋ฑ์ฅํ๋ ์ง์ ์ ์ฐพ์ ํด๋น ๋ฌธ์๋ฅผ ์ ๊ฑฐ, ์ ๊ฑฐ๋ ๋๊ฐ์ง ์ผ์ด์ค ๋ฐ์- ์๋ณธ์ ์ฒ ์๋ฅผ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ
- ์ญ๋ณธ์ ์ฒ ์๋ฅผ ์ ๊ฑฐํ๋ ๊ฒฝ์ฐ
- ๋๊ฐ์ง ์ผ์ด์ค ์ค์์ ํ๋๋ผ๋ ๋ง์กฑํ๋ค๋ฉด ์ ์ฌ ํฐ๋ฆฐ๋๋กฌ์ผ๋ก ํ์
- ์๋ณธ๊ณผ ์ฌ๋ผ์ด์ฑ์ผ๋ก ๋ค์ง์ ๋ฌธ์์ด์ ์ฒ ์ ํ๋ ํ๋ ๋น๊ต (๋ฌธ์์ด ๊ธธ์ด ๋ฐ ์๊ฐ ์ ํ ๋๋ฌธ์ ์ด์ค ๋ฃจํ๋ ๋ถ๊ฐ)
์๊ฐ์๋ฐ์ด ์๋ ์ํฉ์์ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๊ณผ ํฌ์ธํฐ ํผํฉ ๋ฐฉ์์ ๊น๋ํ๊ฒ ๊ตฌํํ๋ ๊ฒ์ด ์๊ฐ๋ณด๋ค ์ฝ์ง ์์์, ์ง๊ด์ ์ผ๋ก ์ฝ๋๋ฅผ ๋น ๋ฅด๊ฒ ๋ง๋ค ์ ์๋ ์ฌ๋ผ์ด์ฑ ๋์กฐ
๋ฐฉ์์ ์ ํํ๊ฒ ๋์๋ค. ํผํฉ ๋ฐฉ์์ ๋นํด ๋ ์๋ ๊ฐ์คํ๊ณ ๋๋ฆฌ์ง๋ง, ํจ์ฌ ์ง๊ด์ ์ธ ํ์ด๋ผ๊ณ ์๊ฐํ๋ค.
์ฒ ์ ์ ๊ฑฐํ ๋ ์ฃผ์ํ ์ ์ ์๋ณธ๊ณผ ์ญ๋ณธ ์ผ์ด์ค ๋ชจ๋ ๊ณ ๋ คํด์ผ ํ๋ค๋ ์ ์ด๋ค. ๋ ์ค ํ๋๋ง ๊ณ ๋ คํ๋ฉด ๋ฐ๋ก์ ๊ฑธ๋ฆฌ๋๊ฒ ์๊ธด๋ค. ํ์๋ ์ฒ์์ ๋ฌด์ง์ฑ์ผ๋ก ์ญ๋ณธ์๊ณ ์ฒ ์๋ง ์ ๊ฑฐํ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋๋ฅผ ์์ ํ๋ค๊ฐ ์์ ์ ๋ ฅ 3๋ฒ์งธ ๋ฌธ์์ด์ ์ํด ์๋ณธ ์ญ์ ๊ณ ๋ คํด์ผ ํจ์ ๊นจ๋ซ๊ณ ์์ ํ๊ฒ ๋์๋ค.
Leave a comment