728x90
문제
https://www.acmicpc.net/problem/10988
단어를 입력한 뒤, 입력한 단어가 팰린드롬인지 아닌지 확인하는 문제이다. 단어는 소문자로만 이루어져 있으며, 팰린드롬이면1, 아니면 0을 출력한다.
+) 팰린드롬은 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다.
ex) level, noon, pop, refer ....
입력 출력
level 1
입력 출력
ba 0
입력 출력
refer 1
------------------------------------------------------------------------------------------------------------------
풀이
단어를 Scanner를 이용하여 문자열로 입력받은 뒤, 문자열 길이의 절반만큼 for문을 반복시켰다.
charAt()을 이용하여 단어를 char형으로 바꾸는데 단어가 서로 일치해야 하므로
str.charAt(i)와 str.charAt(len-1-i)가 다른경우 ans = 0이 되게 설정하였다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
sc.close();
int len = str.length();
int ans = 1;
for(int i=0;i<len/2;i++) {
if(str.charAt(i)!=str.charAt(len-1-i)) {
ans = 0;
}
}
System.out.println(ans);
}
}
아래는 StringBuilder의 reverse()를 사용하여 풀었다. 팰린드롬은 앞으로 읽어도 뒤로 읽어도 동일하므로 앞으로 읽은 경우 str.charAt(i)와 뒤로 읽은 경우 sb.charAt(i)가 다른 경우 ans = 0으로 변경하게 설정하였다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
sc.close();
int len = str.length();
int ans = 1;
StringBuilder sb = new StringBuilder(str);
sb.reverse();
for(int i=0;i<len/2;i++) {
if(str.charAt(i) != sb.charAt(i)) {
ans = 0;
}
}
System.out.println(ans);
}
}
728x90
'문제 풀이' 카테고리의 다른 글
[백준] 25206번: 너의 평점은 - JAVA(자바) (0) | 2023.08.11 |
---|---|
[백준] 2941번: 크로아티아 알파벳 - JAVA(자바) (0) | 2023.08.10 |
[백준] 1157번: 단어 공부 - JAVA (자바) (0) | 2023.08.09 |
[백준] 5622번: 다이얼 - JAVA (자바) (0) | 2023.08.06 |
[백준] 2444번: 별 찍기 - 7 - JAVA (자바) (0) | 2023.08.06 |