728x90
문제
문자열이 주어질 때, 이것이 팰린드롬인지 조사하는 프로그램을 작성하시오. 팰린드롬이란, 앞으로 읽을 때와 뒤로 읽을 때의 결과가 같은 문자열을 말한다.
입력
첫 번째 줄에 문자열이 주어진다. ( 1 ≤ 문자열의 길이 ≤ 1,000 )
출력
입력된 문자열이 팰린드롬이면 YES, 아니면 NO를 출력한다.
예제 입력
abcba
예제 출력
YES
예제 입력
abcbd
예제 출력
NO
// 코드
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
import java.util.*;
import java.io.*;
// 1. 문제가 풀리지만 조건 체크해야될 부분이 생기게 되어 휴먼에러가 발생하기 쉬운 코드이다.
/*
public class Main{
public static void main(String[] args) throws Exception {
// Please Enter Your Code Here
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String getStr = (String)br.readLine();
int typeVal = getStr.length();
int startCursor = 0;
int endCursor = typeVal - 1;
boolean flag = true;
while(startCursor != endCursor) {
char firstVal = getStr.charAt(startCursor);
char endVal = getStr.charAt(endCursor);
if((int)firstVal == (int)endVal) {
if(startCursor+1 == endCursor) break;
startCursor++;
endCursor--;
} else {
flag = false;
break;
}
}
if(flag) {
System.out.println("YES");
} else {
System.out.println("NO");
}
}
}
*/
// 2. 개선 코드
public class Main{
public static boolean isPalindrome(String[] str) {
int originLength = str.length;
int halfLengthVal = originLength / 2;
for(int i=0; i<halfLengthVal; i++) {
if(!str[i].equals(str[originLength-i-1])) return false;
}
return true;
}
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] getStr = br.readLine().split("");
boolean resFlag = isPalindrome(getStr);
if(resFlag) {
System.out.println(1);
} else {
System.out.println(0);
}
}
}
|
cs |
반응형