CS/알고리즘_문제풀이(자바)

팰린드롬 조사

Jedy_Kim 2021. 9. 13. 14:06
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

 

반응형

'CS > 알고리즘_문제풀이(자바)' 카테고리의 다른 글

큰 수 A+B  (0) 2021.09.13
문자열 압축  (0) 2021.09.13
단어 뒤집기  (0) 2021.09.10
과제물 망치기  (0) 2021.09.10
대소문자 변환  (0) 2021.09.10