반응형
SMALL
![](https://blog.kakaocdn.net/dn/bhaBKi/btryOxKCMCg/KpcIkYyEfJzTTWqorN887K/img.jpg)
# 방법 1
1. String tmp = StringBuilder(문자열).reverse().toString() 을 이용하여 문자열을 완전히 뒤집는다.
2. str.equalsIgnoreCase(tmp) => 대소문자 구분 없는 equals 를 이용하여 원본 문자열과 뒤집은 문자열을 비교한다.
(그냥 toUpperCase() 나 toLowerCase()를 이용하여 모두 대문자/소문자로 만들어도 OK)
3. 비교한 결과 같으면 YES, 다르면 NO를 출력한다.
import java.util.Scanner;
public class Main {
public String solution(String str){
String answer = "YES";
// 일단 모두 대문자로 만들어주기
str = str.toUpperCase();
int len = str.length();
// str.charAt(i)와 str.charAt(len-i-1)비교
for(int i=0;i<len/2;i++){
// 같다면 회문 문자열 맞음, 다르면 아님
if(str.charAt(i)!=str.charAt(len-i-1))return "NO";
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb =new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
# 방법 2
1. 모두 대문자로 만들어준다.
2. len(문자열의 길이) / 2 전까지만 검사해주어도 된다. (홀수,짝수 문자열 둘 다) => 회문 문자열이므로!
3. str.charAt(i) 와 str.charAt(len-i-1) 이 같으면 YES, 다르면 NO를 출력한다.
![](https://blog.kakaocdn.net/dn/c3EeVw/btryKYv7R1q/ZrAqyxwOYuzfZEcWydXh1k/img.jpg)
import java.util.Scanner;
public class Main {
public String solution(String str){
String answer = "NO";
// 문자열 뒤집기
String tmp = new StringBuilder(str).reverse().toString();
// 대소문자 무시하여 비교
if(str.equalsIgnoreCase(tmp)) answer = "YES";
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb =new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
반응형
LIST
'자바 알고리즘' 카테고리의 다른 글
09. 숫자만 추출 (0) | 2022.04.11 |
---|---|
08. 팰린드롬 (replaceAll 정규식 이용) (0) | 2022.04.11 |
06. 중복 문자 제거 (0) | 2022.04.08 |
05. 특정 문자 뒤집기 (0) | 2022.04.08 |
04. 단어 뒤집기 (0) | 2022.04.06 |
댓글