티스토리 뷰
반응형
문제
앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열을 회문 문자열이라고 합니다.
문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력하는 프로그램을 작성하세요.
단 회문을 검사할 때 대소문자를 구분하지 않습니다.
입력
첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다.
출력
첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다.
예시 입력
gooG
예시 출력
YES
문제 풀이
[첫번째 풀이]
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String input = scanner.next().toLowerCase();
StringBuffer buffer = new StringBuffer(input);
if (input.equals(buffer.reverse().toString())) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
(Time 165ms / Memory 27MB)
import java.util.Scanner;
public class Main {
public String Solution(String str) {
StringBuffer buffer = new StringBuffer(str);
if (str.equals(buffer.reverse().toString())) {
return "YES";
}
return "NO";
}
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String input = scanner.next().toLowerCase();
Main main = new Main();
System.out.println(main.Solution(input));
}
}
(Time 152ms / Memory 27MB)
[두번째 풀이]
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String input = scanner.next().toLowerCase();
boolean check = true;
for (int i=0; i<input.length()/2; i++) {
if (input.charAt(i) != input.charAt(input.length() - 1 - i)) {
System.out.println("NO");
check = false;
break;
}
}
if (check) {
System.out.println("YES");
}
}
}
(Time 150ms / Memory 27MB)
import java.util.Scanner;
public class Main {
public String Solution(String str) {
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 scanner = new Scanner(System.in);
String input = scanner.next().toLowerCase();
Main main = new Main();
System.out.println(main.Solution(input));
}
}
(Time 157ms / Memory 27MB)
- 첫번째 풀이는 입력 받은 값을 소문자로 통일시켜서 StringBuffer를 이용해 reverse 하여 비교 후 값이 같으면 YES, 다르면 NO
- 두번째 풀이는 for 문을 이용해 앞/뒤 동일한 위치값이 같으면 YES, 다르면 NO
반응형
'Java > Coding Test' 카테고리의 다른 글
[코딩테스트] 숫자만 추출 (0) | 2022.02.27 |
---|---|
[코딩테스트] 유효한 팰린드롬 (0) | 2022.02.27 |
[코딩테스트] 중복문자제거 (0) | 2022.02.25 |
[코딩테스트] 특정 문자 뒤집기 (0) | 2022.02.22 |
[코딩테스트] 단어 뒤집기 (0) | 2022.02.22 |