본문 바로가기

백준

17502 클레어와 팰린드롬

양쪽위치가 다 ?인 경우는 아무 알파벳을 넣어주고

둘 중 하나만 ?인 경우는 한쪽 알파벳으로 채웠다. 

 

중간에 ?인 경우도 생각해서 알파벳을 넣어준다

 

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <cmath>
#include <bitset>

#define xx first
#define yy second
#define all(x) (x).begin(), (x).end()

using namespace std;
using i64 = long long;
using ii = pair<int, int>;
using ii64 = pair<i64, i64>;

int     main()
{
    int n;
    string s;
    cin >> n >> s;

    if (n % 2 == 1 && s[n / 2] == '?')
        s[n / 2] = 'a';

    for (int i = 0; i < n / 2; i++)
    {
        if (s[i] == '?' && s[n - i - 1] == '?')
        {
            s[i] = 'a';
            s[n - i - 1] = 'a';
        }
        else if (s[i] == '?')
            s[i] = s[n - i - 1];
        else if (s[n - i - 1] == '?')
            s[n - i - 1] = s[i];
    }
    
    cout << s;

    return 0;
}

 


다 풀고 북님 코드 보는데 이런것도 가능하구나

 

if (s[i] == '?' && s[n - 1 - i] == '?')
            s[i] = s[n - 1 - i] = 'a';

'백준' 카테고리의 다른 글

5671 호텔 방 번호  (0) 2020.09.19
16926 배열 돌리기 1  (0) 2020.09.19
16935 배열 돌리기 3  (0) 2020.09.16
1012 유기농 배추  (0) 2020.09.16
1094 막대기  (0) 2020.09.16