Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 기초지식
- 여러줄주석
- 자바문자열치환
- 문자찾기
- 자동정렬해제
- 대소문자변환
- 코딩테스트공부
- java
- Object.toString(0
- 개발자
- 코딩테스트연습
- 코테연습
- 보이는학생
- 자바
- 특정문자뒤집기
- 회문문자열
- 코당테스트공부
- 긴단어찾기
- 개발자면접
- substring
- length
- 주석해제
- 코테
- replace
- 코테공부
- 신입개발자면접
- 자바기초
- 형변환
- 코딩테스트
- 가장짧은문자거리
Archives
- Today
- Total
일단 해보자고~
코딩 테스트(Java) :: 유효한 팰린드롬 본문
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 팰린드롬이라고 한다.
문자열을 입력받고 해당 문자열이 팰린드롬이면 "YES", 아니면 "NO"를 출력하시오.
( * 단, 회문을 검사할 때 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않음)
public static void main(String[] args){
Main main = new Main();
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
System.out.println(main.solution(str));
}
문자열이 아니라 이번엔 문장으로 입력을 받아야 하므로 next()가 아니라 nextLine()을 사용했다.
class Main{
public String solution(String str){
String answer = "NO"; // (1)
str=str.toUpperCase().replaceAll("[^A-Z]", ""); // (2)
String tmp = new StringBuilder(str).reverse().toString(); // (3)
if(str.equals(tmp)) answer = "YES"; // (4)
return answer;
}
(1) : 입력받은 문자열이 팰린드롬일 때만 YES를 출력해줘야 하므로 초기 return값인 answer는 "NO"로 선언했다.
(2) : 대,소문자를 구분하지 않는다 했으므로 toUpperCase()를 이용해 입력받은 문장인 str을 전부 대문자로 바꾸고 replaceAll()이라는 정규식을 이용해 대문자 A부터 Z가 아닌 문자는 ""을 이용해 지워버린다.
(3) : (2)에서 정규식을 이용해 문장에서 알파벳을 제외한 문자는 지우고 대문자로 바꾼 문자를 다시 거꾸로 정렬해 tmp라는 문자열 변수에 넣어준다.
(4) : (2)의 문장과 (3)의 문장이 같다면 answer에 "YES"를 반환해준다.
출력 :
'Algorithm > Java' 카테고리의 다른 글
코딩 테스트(Java) :: 가장 짧은 문자거리 (1) | 2022.09.07 |
---|---|
코딩 테스트(Java) :: 숫자만 추출 (1) | 2022.09.07 |
코딩 테스트(Java) :: 회문 문자열 (6) | 2022.09.01 |
코딩 테스트(Java) :: 중복문자제거 (0) | 2022.08.24 |
코딩 테스트(Java) :: 특정 문자 뒤집기 (0) | 2022.08.24 |
Comments