알고리즘/백준

백준 10988 : 팰린드롬인지 확인하기 Java

코드 공작소 2023. 7. 13. 15:27
반응형

www.acmicpc.net/problem/10988


시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 9350 6194 5401 68.186%

문제

알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.

팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. 

level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.


입력

첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.


출력

첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다.


제한


예제 입력

예제 출력

level 1
backjoon

풀이 과정

입력 문자열을 char형 배열에 넣은 후 인덱스 값을 가지고 문자끼리 비교합니다.

길이가 5일 경우 0 4, 1 3 만 비교해도 팰린드롬인지 확인이 가능하기 때문에 length 길이 -1만큼으로 시작하여 반복할 때마다 1씩 줄여줍니다. 만약 문자가 다르다면 flag를 변경해 팰린드롬이 맞는지 아닌지 판단하여 출력합니다.

 


Java 코드

import java.util.Scanner;

/*
 * https://www.acmicpc.net/problem/10988
 * 팰린드롬인지 확인하기
 * 
 * 
 * */
public class Main {

  public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);
    String st = sc.next();

    int length = st.length();
    char[] ar = new char[length];

    for (int i = 0; i < length; i++) {
   	 ar[i] = st.charAt(i);
    }
    boolean flag = true;
    int even = length/2;	
    length = length-1;

    for (int i = 0; i < even; i++) {
      if (!(ar[i] == ar[length])) {
      	flag = false;
      }
      length--;
    }


    if(flag == true) System.out.println("1");
    else System.out.println("0");
  }
}

 

반응형