반응형
회문 문자열
내 코드 (정답) - 하
문자의 앞뒤가 대소문자 관계없이 같으면 YES 다르면 NO 출력
정답 코드도 비슷하여 따로 기재하지 않겠다.
import java.util.*;
public class Main {
public String solution(String str){
String answer = "";
String temp = str.toUpperCase(Locale.ROOT);
for(int i = 0; i < temp.length() / 2; i++){
if(temp.charAt(i) == temp.charAt(temp.length() - 1 - i)){
answer = "YES";
} else {
answer = "NO";
break;
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.print(T.solution(str));
}
}
유효한 팰린드롬
내 코드(오답)
정답 코드 - 상
정규식을 아직도 못 외우고 있었다는게 너무 충격이다.
replaceAll("[^A-Z]", "") 대문자가 아니면 공백!! -->>>> 암기
import java.util.*;
public class Main {
public String solution(String s){
String answer = "NO";
// ** 정규식 이용
// 대문자가 아니면 전부 "" 빈문자로
s = s.toUpperCase().replaceAll("[^A-Z]", "");
String tmp = new StringBuilder(s).reverse().toString();
if(s.equals(tmp)) answer = "YES";
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.print(T.solution(str));
}
}
숫자만 추출
내 코드 (정답) - 하
정규식만 알고 있다면 이제 풀 수 있다.
import java.util.*;
public class Main {
public Integer solution(String s){
Integer answer = 0;
s = s.toUpperCase().replaceAll("[^0-9]", "");
answer = Integer.parseInt(s);
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.nextLine();
System.out.print(T.solution(str));
}
}
반응형
'CS 기초 > 알고리즘 · 문제풀이' 카테고리의 다른 글
[JAVA] Array(1, 2차원 배열) - 피보나치 수열 / 소수(에라토스테네스 체) / 뒤집은 소수 (0) | 2022.02.27 |
---|---|
[JAVA] Array(1, 2차원 배열) - 큰 수 출력하기 / 보이는 학생 / 가위 바위 보 (0) | 2022.02.26 |
[JAVA] 문자열(String) - 가장 짧은 문자거리 / 문자열 압축 / 암호 (0) | 2022.02.26 |
[JAVA] 문자열(String) - 단어 뒤집기 / 특정 문자 뒤집기 / 중복 문자 제거 (0) | 2022.02.13 |
[JAVA] 문자열(String) - 문자 찾기 / 대소문자 변환 / 문장 속 단어 (0) | 2022.02.12 |