본문 바로가기

알고리즘/백준

[백준] 10988 - 팰린드롬인지 확인하기 (JAVA/ 자바)

반응형

10988번 문제

 

1. Scanner를 이용한 방법

import java.util.Scanner;

public class Main{
public static void main(String[] args){

    Scanner sc = new Scanner(System.in);

    String input = sc.next();
    int right = 1;

    for(int i=0; i<input.length()/2; i++){
        if(input.charAt(i) != input.charAt(input.length()-i-1)){
            right = 0;
        }
    }
    System.out.println(right);
    sc.close();
    }
}

 

2. BufferedReader를 이용한 방법

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{
public static void main(String[] args)throws IOException{

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    String input = br.readLine();
    int right = 1;

    for(int i=0; i<input.length()/2; i++){
        if(input.charAt(i) != input.charAt(input.length()-i-1)){
            right = 0;
        }
    }
    System.out.println(right);
    br.close();
    }
}

처음에 0으로 선언하고 시작했는데 그렇게 하면 팰린드롬이 아닌데 일부만 보고 일치한다고 판단해서 1을 출력해버리는 것 같다. 반대로 바꿔주니 해결되었다.

 

3. StringBuilder를 이용한 방법

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main{
public static void main(String[] args)throws IOException{

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    String input = br.readLine();
    StringBuilder sb = new StringBuilder(input);
    String diff = sb.reverse().toString();
    int right = 0;

    if(input.equals(diff)){
        right = 1;
    }

    System.out.println(right);
    br.close();
    }
}

문제를 푼 후 다른 방법을 찾아보니 StringBuilder의 reverse()라는 메서드가 있다는 걸 알게되어 그 방법으로 다시 풀어보았다.

반응형