๋ฌธ์
๋ฐฑ์ค ์จ๋ผ์ธ ์ ์ง - 1802๋ฒ
ํ์ด ๊ณผ์
๊ท์น์ ๋ฐ๋ผ ์ข
์ด๋ฅผ ์ ์๋ค๊ฐ ํ์ ๋ ๋ชฉํ๋ก ํ๋ ์ํ๊ฐ ๋ ์ ์๋์ง ํ๋จํ๋ ๋ฌธ์ ์
๋๋ค.
์ข
์ด ์ ๊ธฐ์ ์ํด ์๊ธฐ๋ ๊บพ์ ๋ฐฉํฅ์๋ ๊ท์น์ด ์กด์ฌํฉ๋๋ค.
์ฐ์ ์ค์ฌ์ ๊ธฐ์ค์ผ๋ก ๋ฐ์ผ๋ก ์ ๊ธฐ ๋๋ฌธ์ ์ค์ฌ ์์น์ ๊บพ์ ์์น๋ ์ค์ํ์ง ์์ต๋๋ค.
๋ค๋ง ์ ํ๋ ์ค์ฌ์ ๊ธฐ์ค์ผ๋ก ์ข, ์ฐ๊ฐ ์๋ก ๋์นญ์ ์ด๋ฃจ์ด์ผ ํฉ๋๋ค.
๋ฐ๋ผ์ ๋ถํ ์ ๋ณต
์ ํตํด ๋์นญ์ฑ์ ํ๋จํด์ ๋ต์ ๊ตฌํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์ฝ๋
import sys
def check(paper, mid):
for i in range(mid):
if paper[i] == paper[mid * 2 - i]:
return False
return True
def check_opposite(paper):
if len(paper) == 1:
return True
mid = len(paper) // 2
ret = check(paper, mid) and check_opposite(paper[:mid]) and check_opposite(paper[mid + 1:])
return ret
def solution(paper):
is_opposite = check_opposite(paper)
return 'YES' if is_opposite else 'NO'
if __name__ == '__main__':
T = int(input())
for _ in range(T):
paper = sys.stdin.readline().strip()
answer = solution(paper)
print(answer)
๋ฐ์ํ
'๐ algorithm > boj' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ 14226 - ์ด๋ชจํฐ์ฝ (0) | 2021.03.08 |
---|---|
BOJ 2529 - ๋ถ๋ฑํธ (0) | 2021.03.08 |
BOJ 17829 - 222-ํ๋ง (0) | 2021.03.08 |
BOJ 13905 - ์ธ๋ถ (0) | 2021.03.08 |
BOJ 2458 - ํค ์์ (0) | 2021.03.08 |
๐ฌ ๋๊ธ