Notice
Recent Posts
Recent Comments
Link
just inside
[SWEA/D2] 1989. 초심자의 회문 검사 본문
728x90
[문제 링크]
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PyTLqAf4DFAUq
[문제 설명]
"level" 과 같이 거꾸로 읽어도 제대로 읽은 것과 같은 문장이나 낱말을 회문(回文, palindrome)이라 한다.
단어를 입력 받아 회문이면 1을 출력하고, 아니라면 0을 출력하는 프로그램을 작성하라.
[제약 사항]
각 단어의 길이는 3 이상 10 이하이다.
[입력]
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에 하나의 단어가 주어진다.
[출력]
출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
제출 코드
t = int(input())
for i in range(1, t+1):
word = input()
mid = len(word)//2
if len(word)%2 == 1:
if word[:mid+1] == word[-1:mid-1:-1]:
res = 1
else:
res = 0
else:
if word[:mid] == word[-1:mid-1:-1]:
res = 1
else:
res = 0
print('#'+str(i), res)
풀이
- 입력되는 문자가 짝수냐 홀수냐에 따라 슬라이싱을 다르게 해야한다.
- 홀수인 경우 가운데 값까지 포함시켜 슬라이싱하고, 값이 같은지 비교한다.
- 짝수인 경우 반으로 나눠 슬라이싱하고, 값이 같은지 비교한다.
- 인덱스 값을 잘 확인할 것.
알아둘 사항
728x90
'coding test > SWEA' 카테고리의 다른 글
[SWEA/D2] 2005. 파스칼의 삼각형 (0) | 2024.11.07 |
---|---|
[SWEA/D2] 2001. 파리 퇴치 (0) | 2024.11.06 |
[SWEA/D2] 1986. 지그재그 숫자 (0) | 2024.11.05 |
[SWEA/D2] 1984. 중간 평균값 구하기 (0) | 2024.11.04 |
[SWEA/D2] 1983. 조교의 성적 매기기 (0) | 2024.11.04 |