T = int(input())
for tc in range(1,1+T):
# 단어
word = list(str(input()))
# 단어 길이
n = len(word)
# 카운트
cnt = 0
# 단어의 시작점, 끝점에 *이 있으면 무조건 팰린드롬임
if word[0] == '*' or word[-1] == '*':
print('#{} {}'.format(tc,'Exist'))
else:
for q in range(n//2):
# 단어의 시작점의 값 == 끝점의 값
# 더 반복할 필요 없음
if word[q] == '*' or word[-1-q] == '*':
cnt = n//2
break
# 해당 위치의 값과 반대편의 위치의 값이 같으면
elif word[q] == word[-1-q]:
cnt += 1
# 하나라도 조건에 불일치한 경우 끝
else:
break
if cnt == n//2:
print('#{} {}'.format(tc, 'Exist'))
else:
print('#{} {}'.format(tc, 'Not exist'))
그 외
문제 풀이를 위한 아이디어
1. 한 번이라도 팰린드롬의 조건에서 벗어나면 해당 글자는 더 이상 팰린드롬이 될 수 없다
ex) a ** c 이런 경우는 팰린드롬 X
2. [0]과 [-1] 위치 중 한 곳의 값이 *인 경우, 무조건 팰린드롬의 조건에 충족함
ex) q w e a s d *인 경우, * = d s a e w q 이런식으로 조건 충족 가능
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] 모음이 보이지 않는 사람 - PYTHON #4406 (0) | 2021.01.13 |
---|---|
[SWEA 코딩] 최대 성적표 만들기 - PYTHON #4466 (0) | 2021.01.13 |
[SWEA 코딩] 신뢰 - PYTHON #10761 (0) | 2021.01.12 |
[SWEA 코딩] 민석이의 과제 체크하기 - PYTHON #5431 (0) | 2021.01.11 |
[SWEA 코딩] 새샘이의 7-3-5 게임 - PYTHON #5948 (0) | 2021.01.11 |