-
[BOJ 17609, Python 3] 회문알고리즘/BOJ 2021. 8. 8. 15:08반응형
https://www.acmicpc.net/problem/17609
풀이
회문에서 삭제할 곳을 찾는 방법은 양끝부터 확인하는 for문을 만들어서 확인해보면 삭제해야할 부분에서 에러가 나올겁니다. 만약 나오지 않으면 0을 출력하면 됩니다.
삭제해야하는 글자는 왼쪽에서 시작하는 글자, 오른쪽에서 시작하는 글자 둘 중 하나이기 때문에 왼쪽 인덱스의 글자를 삭제해보고 돌려보고, 오른쪽 인덱스의 글자를 삭제해서 돌려보고 확인해보고 둘 중 하나라도 회문이 만들어지면 1을 출력, 아니면 2를 출력하면 됩니다.
코드
1234567891011121314151617181920for _ in range(int(input())):s = [*input()]idx = -1for i in range(len(s)//2):if s[i] != s[-1-i]:idx = ibreakif idx == -1:print(0)continueflag = [True, True]for i, (x, y) in enumerate([(idx + 1, len(s) - 1 - idx), (idx, len(s) - 2 - idx)]):while x <= y:if s[x] != s[y]:flag[i] = Falsebreakx += 1; y -= 1if flag[0] or flag[1]: print(1)else: print(2)cs 반응형'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ 1461, Python 3] 도서관 (0) 2021.08.08 [BOJ 1092, Pypy3] 배 (0) 2021.08.08 [BOJ 16953, Python 3] A → B (0) 2021.08.07 [BOJ 11497, Python 3] 통나무 건너뛰기 (0) 2021.08.07 [BOJ 9009, Python 3] 피보나치 (0) 2021.08.07