본문 바로가기
Baekjoon 자바 코드/심화1

[백준] 10988번 팰린드롬인지 확인하기 풀이 코드 (Java 자바)

by 망댕이 2024. 4. 24.
반응형

 

접근 방법)

이 문제는 입력값을 거꾸로 뒤집었을 때 입력값 원본과 일치할 경우 1을 출력 그렇지 않으면 0을 출력한다.

입력받은 문자열을 for문안에서 charAt()를 이용하여 char값의 비교를 통해 풀어낼 수 있다.

그리고 문자열을 쉽게 다룰 수 있는 StringBuilder 클래스의 reverse() 메소드를 이용하여 간단하게 풀 수 있다.

 


 

정답 코드 1)

for문과 charAt() 사용

import java.util.*;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str1 = sc.next();
        int length = str1.length();
        int num = 1; // 입력받은 문자열을 팰린드롬이라 가정
        
        for(int i = 0; i < length; i++){
            if(str1.charAt(i)!=str1.charAt(length-1-i)){
                num = 0;
            }
        }
        System.out.print(num);
    }
}

 

우선 입력받은 문자열을 팬린드롬이라고 가정한다.

그리고  for문에서 문자열.charAt(i)로 [i]와 [length-1-i]를 모두 비교한 후, 하나라도 일치하지 않은 것이 있다면 num에 0 값을 할당하는 것이다.

 

정답 코드 2)

StringBuilder 클래스 사용

import java.util.*;
import java.io.*;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str1 = sc.next();
        StringBuilder str2 = new StringBuilder(str1);
        if(str1.equals(str2.reverse().toString())){
            System.out.print("1");
        }else{
            System.out.print("0");
        }
    }
}

 

str1 문자열을 입력받고, str1을 문자열을 인자로 하는 StringBuilder 객체 str2를 생성한다.

그리고 str2.reverse()를 통해 문자열을 뒤집어준다. 이때 str2.reverse()는 타입이 StringBuilder이기 때문에 toString()을 뒤에 추가하여 String 타입으로 변환해야 한다.

 

그리고 equals()를 이용하여 같을 때 1을 출력 다를 때 0을 출력하도록 작성해 문제를 풀었다.

 

 

반응형