[알고리즘] 초심자의 회문 검사


SWEA

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;
      }
   }
}





© 2019. by jun108059

Powered by youngjun