Updated:

๐Ÿ–๏ธย 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