죠노이 노트

https://www.acmicpc.net/problem/1254

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
#include<iostream>
int main(){
    std::string str;
    std::cin >> str;
    int str_len = str.length();
    int left, right;
    int num_other = 0; // 왼쪽 부터 비교 다르면 추가해야할 문자 수
    
for(int i = 0 ; i < str_len - 1; i++){
        // i = 비교해야할 left / str_len - i = 제일 오른쪽 
        if(str[i] == str[str_len - 1]){ // 같다면 안에서 left 와 right 안쪽으로 들어오며 비교
            left = i; right= str_len - 1;
            for(int j = 0; j < (str_len - i) / 2 ; j++){
                if(str[left] == str[right]){
                    left++; right--;
                }
                else{ //다를 경우 추가해야할 문자수 ++ / 멈춤
                    num_other++;
                    break;
                }
                if(left > right || left == right){ // 다 도달했다는 뜻 i 값에 마지막 인덱스를 넣어주어 스탑
                    i = str_len - 1;
                    break;
                }
            }
        }
        else num_other++;
    }
    std::cout << str_len + num_other << std::endl;
    return -1;
}



'개발 > 백준_알고리즘' 카테고리의 다른 글

[백준] [DP] 2293번 동전 1  (1) 2016.11.16
[백준] [DP] 10942번 팰린드롬? 문제  (0) 2016.11.14
[백준][DP] 2294번 : 동전 2 문제  (0) 2016.11.08