728x90
백준 10988번 팰린드롬인지 확인하기
문제 설명
알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.
팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다.
level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.
입력
첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.
출력
첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다.
나의 문제 풀이 코드
import java.io.*;
public class bj10988 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String s = br.readLine();
int result = 1;
int j = s.length()-1;
for (int i = 0; i < s.length()/2; i++) {
if (s.charAt(i) != s.charAt(j--))
result = 0;
}
bw.write(String.valueOf(result));
bw.flush();
}
}
문제 풀이 코멘트
팰린트롬의 판단은 문자열의 반을 기준으로 양끝에서부터 같은지를 판단하면 됩니다.
for (int i = 0; i < s.length() / 2; i++) 으로 문자열의 절반까지만 반복합니다. 이 반복문을 통해 문자열을 앞에서부터 절반까지 비교하며 팰린드롬 여부를 확인합니다.
s.charAt(i) != s.charAt(j--)로 현재 인덱스(처음부터 시작)의 문자와 j(끝에서부터 시작)의 문자를 비교합니다. 비교 후에 j를 하나 감소시켜서 문자열을 뒤에서부터 앞으로 한칸 당겨 비교할 수 있도록 합니다.
728x90
'공log > [P&B]' 카테고리의 다른 글
[P&B] #61 BAEKJOON 2941 (0) | 2023.09.17 |
---|---|
[P&B] #60 BAEKJOON 1157 (0) | 2023.09.17 |
[P&B] #58 BAEKJOON 2563 (0) | 2023.09.17 |
[P&B] #57 BAEKJOON 5622 (0) | 2023.09.17 |
[P&B] #56 BAEKJOON 2908 (0) | 2023.09.17 |