문제
클레어는 길이가 N인 팰린드롬 문자열을 가지고 있습니다.
팰린드롬 문자열이란 앞에서부터 읽으나 뒤에서부터 읽으나 같은 문자열을 뜻합니다.
예를 들어, "rotator", "racecar", "a"는 팰린드롬 문자열이지만 "palindrome", "poq" 는 팰린드롬 문자열이 아닙니다.
하루는 장난기 많은 에드거가 클레어가 가지고 있는 팰린드롬 문자열의 일부를 지워버렸습니다.
그 때문에 클레어가 많이 화가 나 있습니다. 클레어를 위해 문자열을 복구해주세요.
입력
첫 번째 줄에 문자열의 길이 N (1 ≤ N ≤ 100) 이 주어집니다.
두 번째 줄에는 일부 문자들이 지워진 길이가 N인 팰린드롬 문자열이 주어집니다. 각 문자는 알파벳 소문자이거나 '?' 이며 '?' 일 경우 해당 문자가 지워졌음을 의미합니다.
주어지는 문자열은 적어도 한 개의 '?' 문자를 가집니다.
출력
입력으로 주어진 문자열을 팰린드롬이 되도록 '?' 문자들을 적절한 알파벳 소문자들로 바꾸어 출력합니다.
방법이 여러 가지인 경우 그 중 하나만 출력합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include<stdio.h>
#pragma warning(disable:4996)
#pragma warning(disable:6031)
char input[101];
int main()
{
int n;
scanf("%d", &n);
scanf("%s", input);
for (int i = 0; i < n / 2; i++) {
if (input[i] == '?' && input[n - 1 - i] == '?')input[i] = input[n - 1 - i] = 'a';
else if (input[i] == '?' && input[n - 1 - i] != '?')input[i] = input[n - 1 - i];
else if (input[i] != '?' && input[n - 1 - i] == '?')input[n - 1 - i] = input[i];
}
if (n % 2) {
if (input[n / 2] == '?')input[n / 2] = 'a';
}
printf("%s\n", input);
return 0;
}
|
cs |
간단한 구현 문제였다.
양 쪽 다 물음표면 a를 넣어주고 한 쪽만 물음표면 대칭이 되게 알맞은 문자를 넣어주면 된다.
'백준 온라인 저지 (BOJ) 문제풀이' 카테고리의 다른 글
백준 온라인 저지 (BOJ) 4539 반올림 (0) | 2020.09.25 |
---|---|
백준 온라인 저지 (BOJ) 10434 행복한 소수 (0) | 2020.09.25 |
백준 온라인 저지 (BOJ) 5988 홀수일까 짝수일까 (0) | 2020.09.25 |
백준 온라인 저지 (BOJ) 1212 8진수 2진수 (0) | 2020.09.25 |
백준 온라인 저지 (BOJ) 1339 단어수학 (0) | 2020.09.25 |