[BOJ] 백준 10988번: 팰린드롬인지 확인하기 - Java(자바) 문제 해설 및 풀이
-
728x90
반응형
백준 10988번: 팰린드롬인지 확인하기
❓ 문제
알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오. 팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.
📝Input
첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.
🖨️ Output
첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다.
🎯 풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String wd = sc.next();
if (Palindrome(wd)) {
System.out.println("1");
} else {
System.out.println("0");
}
sc.close();
}
public static boolean Palindrome(String wd) {
int length = wd.length();
for (int i = 0; i < length / 2; i++) {
if (wd.charAt(i) != wd.charAt(length - 1 - i)) {
return false;
}
}
return true;
}
}
⭐ 사용자에게 입력을 받기위해 Scanner 객체 생성 후 문자열 word 선언
Scanner sc = new Scanner(System.in);
String word = sc.next();
⭐ 팰린드롬인지 확인하는 함수 선언
public static boolean Palindrome(String wd)
⭐ 입력 받은 단어(wd)의 길이 값을 length 에 저장
int length = wd.length();
⭐ 입력 받은 단어의 중간까지 반복 ⭐ 현재 위치의 문자와 대칭되는 위치의 문자를 비교 => 다르면 false 반환
⭐ 끝까지 대칭되는 문자가 서로 같다면 true 반환
for (int i = 0; i < length / 2; i++) {
if (wd.charAt(i) != wd.charAt(length - 1 - i)) {
return false;
}
}
return true;
⭐ true 일 경우 1 출력 false 일 경우 0 출력
if (Palindrome(wd)) {
System.out.println("1");
} else {
System.out.println("0");
}