[알고리즘] 초심자의 회문 검사
in Algorithm on SWExpertAcademy, Algorithm
1989. 초심자의 회문 검사
삼성 SW Expert Academy 알고리즘 문제풀기 [D2]
“level” 과 같이 거꾸로 읽어도 제대로 읽은 것과 같은 문장이나 낱말을 회문(回文, palindrome)이라 한다.
단어를 입력 받아 회문이면 1을 출력하고, 아니라면 0을 출력하는 프로그램을 작성하라.
[제약 사항]
각 단어의 길이는 3 이상 10 이하이다.
[입력]
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에 하나의 단어가 주어진다.
[출력]
출력의 각 줄은 ‘#t’로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
> 입력
3
level
samsung
eye
> 출력
#1 1
#2 0
#3 1
import java.util.*;
/* 19.08.19
* SW Expert Academy
* [1989] 초심자의 회문 검사
* "level" 과 같이 거꾸로 읽어도 제대로 읽은 것과 같은 문장이나 낱말을 회문(palindrome)이라 한다.
* 단어를 입력 받아 회문이면 1을 출력하고, 아니라면 0을 출력하는 프로그램을 작성
*/
public class Solution {
public static void main(String[] args) {
int sol = 1;
Scanner scan = new Scanner(System.in);
int testcount = scan.nextInt();
// 입력받은 test case만큼 배열 생성
// 배열에 단어들 넣기
String [] wordArr = new String[testcount];
for(int i=0; i<testcount; i++) {
wordArr[i] = scan.next();
}
for(int i=0; i<testcount; i++) {
int wordLeng= wordArr[i].length();
// 홀수일 때만 비교하면 됨
for(int k=0; k<((wordLeng/2)); k++) {
// 배열에 문자열 길이 /2 만큼 확인
if (!(wordArr[i].substring(k,k+1).equals(wordArr[i].substring(wordLeng-k-1,wordLeng-k)))) {
sol = 0;
break;
}
}
System.out.println("#"+ (i+1) + " " + sol);
sol = 1;
}
}
}