Notice
Recent Posts
Recent Comments
Link
05-02 11:19
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- M2
- 우리FISA #
- HTTP
- route 53
- jdk
- 맥북
- 우리FIS아카데미 #
- 우리에프아이에스 #
- 맥
- Gradle
- 맥OS
- spring
- AWS
- mysql
- sts
- 로드밸런스
- 우리에프아이에스
- 클라우드 서비스 개발 #
- 우리FISA
- dbeaver
- 글로벌소프트웨어캠퍼스
- K-디지털트레이닝
- 클라우드 서비스 개발
- Java
- 우리FIS아카데미
- springboot
- https
- 리눅스
- 도메인
Archives
- Today
- Total
<<개발일지>>
[문자열] 7.회문 문자열 본문
7. 회문 문자열
설명
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다.
문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력하는 프로그램을 작성하세요.
단 회문을 검사할 때 대소문자를 구분하지 않습니다.
입력
첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.
출력
첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다.
예시 입력 1
gooG
예시 출력 1
YES
<<풀이>>
세 가지 방식을 이용했다. 우선 나는
StringBuilder를 활용하고 그 메소드인 reverse와 toString을 이용했다.
import java.util.Scanner;
class Main {
public String solution(String str) {
StringBuilder sb = new StringBuilder();
String answer = "";
String lowstr = str.toLowerCase();
String result = sb.append(lowstr).reverse().toString();
if (result.equals(lowstr)) answer = "YES";
else answer = "NO";
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
String str = in.next();
System.out.println(T.solution(str));
}
}
두 번째 방법은 하나하나 비교하는 경우이다.
import java.util.Scanner;
class Main {
public String solution(String str) {
String answer = "YES";
int len = str.length();
String rev = str.toLowerCase();
for (int i = 0; i < len; i++) {
if (rev.charAt(i) != rev.charAt(len -1 -i)) return "NO";
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
String str = in.next();
System.out.println(T.solution(str));
}
}
마지막은
equalsIgnoreCase을 이용한 것이다. 이거는 대소문자를 무시하고 문자를 비교한다. 놀랍다 !!!
import java.util.Scanner;
class Main {
public String solution(String str) {
StringBuilder sb = new StringBuilder();
String answer = "";
String result = sb.append(str).reverse().toString();
if (result.equalsIgnoreCase(str)) answer = "YES";
else answer = "NO";
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
String str = in.next();
System.out.println(T.solution(str));
}
}
'코딩테스트' 카테고리의 다른 글
[문자열] 9. 숫자만 추출 (2) | 2023.12.03 |
---|---|
[문자열] 8. 유요한 팰린드롬 (1) | 2023.12.03 |
[문자열] 6. 중복문자제거 (0) | 2023.12.01 |
[문자열] 5. 특정 문자 뒤집기 (1) | 2023.11.29 |
[문자열] 4. 단어 뒤집기 (1) | 2023.11.27 |