๐Ÿงฉ Problem Solving/[๋ฐฑ์ค€]

[๋ฐฑ์ค€] 1254 ํŒฐ๋ฆฐ๋“œ๋กฌ ๋งŒ๋“ค๊ธฐ + ํŒฐ๋ฆฐ๋“œ๋กฌ ํ™•์ธ๋ฒ• (python ํŒŒ์ด์ฌ)

์ œ๋ด‰์•„ 2025. 2. 8. 01:43

https://www.acmicpc.net/problem/1254


์•ž์— ํ’€์—ˆ๋˜ ํŒฐ๋ฆฐ๋“œ๋กฌ ๋งŒ๋“ค๊ธฐ๋ณด๋‹ค ๋” ์‰ฌ์šด ๋ฌธ์ œ. ์•„๋งˆ ํŒŒ์ด์ฌ์ด๋ผ ๊ทธ๋Ÿฐ ๊ฑฐ ๊ฐ™๋‹ค


์•„์ด๋””์–ด

- ์ด ๋ฌธ์ œ๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ๊ฑด๋“ค์ง€ ์•Š๊ณ , ๋ฌธ์ž์—ด ๋’ค์— ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•ด์„œ ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๋’ท ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค๊ธฐ ํŽธํ•˜๋„๋ก ๋ฐฐ์—ด์„ ์ƒˆ๋กœ ํ•˜๋‚˜ ์ƒ์„ฑํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ๋‹ค.


์ „์ฒด ์ฝ”๋“œ

text = list(input())
N = len(text)
back = []

def is_pal(x):
    for i in range(len(x)):
        if x[i] != x[len(x) - 1 - i]:
            return False
    return True

for i in range(N):
    if is_pal(text + back):
        break
    back.insert(0,text[i])

print(len(text + back))

์ฝ”๋“œ ์„ค๋ช…

for i in range(N):
    if is_pal(text + back):
        break
    back.insert(0,text[i])

print(len(text + back))

 

๋ฌธ์ž์—ด ๋’ค์— ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด์„œ ํŒฐ๋ฆฐ๋“œ๋กฌ์ธ์ง€ ํ™•์ธํ•œ๋‹ค. 

์ด๋ฅผ ์œ„ํ•ด back๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•ด ๋ฌธ์ž์—ด ๋’ค์— ์ถ”๊ฐ€ํ•  ๋ฌธ์ž๋“ค์„ ์•ž์—์„œ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅํ•œ๋‹ค.

 

์ตœ์ข…์ ์œผ๋กœ ๋‘ ๋ฌธ์ž์—ด ๊ฐœ์ˆ˜๋ฅผ ํ•ฉ์ณ์„œ ์ถœ๋ ฅํ•ด ์ค€๋‹ค.


์ถ”๊ฐ€

def is_pal(x):
    return x == x[::-1]

 

ํŒŒ์ด์ฌ์—์„œ๋Š” ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์งง์€ ์ฝ”๋“œ๋กœ ํŒฐ๋ฆฐ๋“œ๋กฌ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค.