반응형
1. Scanner를 이용한 방법
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String input = sc.next();
int right = 1;
for(int i=0; i<input.length()/2; i++){
if(input.charAt(i) != input.charAt(input.length()-i-1)){
right = 0;
}
}
System.out.println(right);
sc.close();
}
}
2. BufferedReader를 이용한 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
int right = 1;
for(int i=0; i<input.length()/2; i++){
if(input.charAt(i) != input.charAt(input.length()-i-1)){
right = 0;
}
}
System.out.println(right);
br.close();
}
}
처음에 0으로 선언하고 시작했는데 그렇게 하면 팰린드롬이 아닌데 일부만 보고 일치한다고 판단해서 1을 출력해버리는 것 같다. 반대로 바꿔주니 해결되었다.
3. StringBuilder를 이용한 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
StringBuilder sb = new StringBuilder(input);
String diff = sb.reverse().toString();
int right = 0;
if(input.equals(diff)){
right = 1;
}
System.out.println(right);
br.close();
}
}
문제를 푼 후 다른 방법을 찾아보니 StringBuilder의 reverse()라는 메서드가 있다는 걸 알게되어 그 방법으로 다시 풀어보았다.
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준]2941 - 크로아티아 알파벳 (JAVA/ 자바) (0) | 2024.03.08 |
---|---|
[백준] 1157 - 단어 공부 (JAVA/ 자바) (0) | 2024.03.07 |
[백준] 2444 - 별 찍기(7) (JAVA/ 자바) (0) | 2024.03.05 |
[백준] 3003 - 킹, 퀸, 룩, 비숍, 나이트, 폰 (JAVA/ 자바) (0) | 2024.03.04 |
[백준] 25083 - 새싹 (0) | 2024.03.03 |