ํ’€์ด


์•ž๋’ค๊ฐ€ ๋˜‘๊ฐ™์€ ๋ฌธ์ž์—ด์„ ํšŒ๋ฌธ์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ ํ•œ๊ธ€์ž๋ฅผ ์ œ์™ธํ–ˆ์„ ๋•Œ ํšŒ๋ฌธ์„ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๋ฌธ์ž์—ด์„ ์œ ์‚ฌํšŒ๋ฌธ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ด๋•Œ ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์ด ํšŒ๋ฌธ์ธ์ง€, ์œ ์‚ฌํšŒ๋ฌธ์ธ์ง€, ๊ทธ ์™ธ์ธ์ง€๋ฅผ ํŒ๋‹จํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์งœ์•ผํ•œ๋‹ค.

์ฒ˜์Œ์—๋Š” ๋ฆฌ์ŠคํŠธ ์Šฌ๋ผ์ด์‹ฑ์„ ํ†ตํ•ด ๊ฐ ์ž๋ฆฌ์ˆ˜๋ฅผ ์ œ์™ธํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค์–ด๋‚ธ ํ›„ ๋น„๊ตํ•ด๋ณด๋Š” ๋ฐฉ์‹์„ ์„ ํƒํ–ˆ์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฌธ์ž์—ด ์ตœ๋Œ€๊ธธ์ด๊ฐ€ 100,000 ์ด๋‹ค ๋ณด๋‹ˆ ์—ญ์‹œ๋‚˜ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ์ผ์–ด๋‚ฌ๋‹ค.

๊ทธ๋ž˜์„œ ์„ ํƒํ•œ ๊ฒƒ์ด ๋Œ€์นญ์œ„์น˜์˜ ๋ฌธ์ž๋ฅผ ๊ฐ๊ฐ ๋น„๊ตํ•˜๋‹ค๊ฐ€ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์ด ๋‚˜์™”์„ ๊ฒฝ์šฐ ๋งจ ์•ž ํ˜น์€ ๋งจ ๋ ๋ฌธ์ž๋ฅผ ์ œ์™ธํ•œ ์ฑ„๋กœ ๋น„๊ตํ•ด๋ณด๋Š” ๊ฒƒ์ด๋‹ค.

์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณด์ž

โ€œsummuusโ€ ๋ผ๋Š” ๋ฌธ์ž์—ด์ด ์žˆ๋‹ค.

01234567

summuus

0 ๊ณผ 7 ์€ s ๋กœ ๊ฐ™๋‹ค.

1 ๊ณผ 6 ์€ u ๋กœ ๊ฐ™๋‹ค.

2 ์™€ 5 ๋Š” m, u ๋กœ ๋‹ค๋ฅด๋‹ค.

์ด๋•Œ โ€œmmuโ€ ๋ฅผ ๋งŒ๋“ค์–ด 0๋ฒˆ์งธ ์ž๋ฆฌ๋‚˜ 2๋ฒˆ์งธ ์ž๋ฆฌ๋ฅผ ์ œ์™ธํ•˜์—ฌ ๋น„๊ตํ•œ๋‹ค.

์ด ๊ฒฝ์šฐ 2๋ฒˆ์งธ ์ž๋ฆฌ์ธ โ€œuโ€ ๋ฅผ ์ œ์™ธํ•˜๋ฉด โ€œmmโ€ ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ์‚ฌํšŒ๋ฌธ์ด๋ผ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์œ„์— ์„ค๋ช…๋œ ๋…ผ๋ฆฌ๋ฅผ isFalse ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด lFalse ์™€ rFalse ๊ฐ’์„ ๋ฐ›์•„๋‚ธ ํ›„ ์ถœ๋ ฅ๊ฐ’์— ๋งž์ถฐ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด๋œ๋‹ค.

์†Œ์Šค์ฝ”๋“œ


# ํšŒ๋ฌธ
import sys
input = sys.stdin.readline
 
def isFalse(s, l, r):
    while l < r:
        if s[l] == s[r]:
            l += 1
            r -= 1
        else:
            return False
    return True
 
 
def isPalin(s, l, r):
    while l < r:
        if s[l] == s[r]:
            l += 1
            r -= 1
        else:
            lFalse = isFalse(s, l+1, r)
            rFalse = isFalse(s, l, r-1)
            if lFalse or rFalse:
                return 1
            else:
                return 2
    return 0
 
 
t = int(input())
 
for _ in range(t):
    s = input().rstrip()
    l, r = 0, len(s)-1
    print(isPalin(s, l, r))

References