현재

[Java][BaekJoon][10988] 팰린드롬인지 확인하기 본문

알고리즘/백준

[Java][BaekJoon][10988] 팰린드롬인지 확인하기

AAAge 2023. 9. 27. 09:26

<문제의도>

배열의 첫 번째 값과, 배열의 끝 값을 순차적으로 비교할 수 있느냐 묻는 문제이다.

<풀이코드>

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scn = new Scanner(System.in);

        String s = scn.nextLine();
        int result = 1;
        char word [] = new char[s.length()];

        for ( int x = 0 ; x < s.length(); x++){
            word [x] = s.charAt(x);
        }

        for ( int x = 0 ; x < s.length() / 2; x++){ //s.length 가 5, 0,1,2,3,4
            if(word [x] == word [s.length()-(x+1)]){// 0이랑 4
                result = 1;                                    // 1이랑 3
                                                    // 2이랑 2
            }else if (word [x] != word [s.length()-(x+1)]){
                result = 0 ;
                break;
            }

        }
        System.out.println(result);
    }
}

<풀이과정>

예전에 for문에서 변수두개를 써서 문제를 해결했던 적이 있는데 이번에는 그렇게 하고싶지않아서

새로운 방법을 찾아봤다. 그래서 길이를 2로 나누는걸로 문제를 해결하였다.

하지만 다른 문제에서는 가운데값을 비교할 수 가 없어서 문제가 생길수도 있는 알고리즘 이라고 생각한다.

 

<문제출처>

https://www.acmicpc.net/problem/10988

 

10988번: 팰린드롬인지 확인하기

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

www.acmicpc.net