내 풀이
회문은 자주 풀어서인지 풀이법을 외운듯
원래는 소문자로 변경하고 체크했는데, equalsIgnoreCase이면 대소문자 변환이 필요없다.
public class Main {
public void solution(String str) {
//str = str.toLowerCase(Locale.ROOT);
String str1 = new StringBuilder(str).reverse().toString();
if (str.equalsIgnoreCase(str1)) {
System.out.println("YES");
} else System.out.println("NO");
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
Main T = new Main();
T.solution(s);
}
}
강사님 풀이
앞뒤 비교하는 방식, for문은 절반까지만 돌면 됨.
public class Main2 {
public String solution(String str) {
str = str.toLowerCase(Locale.ROOT);
// 인덱스 절반 전까지만 i가 올라가면 전부 비교 됨.
for (int i = 0; i < str.length()/2; i++) {
// 일치하지 않는 문자가 있다면 회문이 아님
if (str.charAt(i) != str.charAt(str.length()-1-i)) return "NO";
}
return "YES";
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.next();
Main2 T = new Main2();
System.out.println(T.solution(s));
}
}
'알고리즘 > 인프런_자바코테강의' 카테고리의 다른 글
인프런 9. 숫자만 추출 (Java) (0) | 2022.03.25 |
---|---|
8. 유효한 팰린드롬 (0) | 2022.03.25 |
인프런 6. 중복 문자 제거 (Java) (0) | 2022.03.10 |
인프런 5. 특정 문자 뒤집기 (Java) (0) | 2022.03.10 |
인프런 4. 단어뒤집기 (Java) (0) | 2022.03.10 |