728x90
https://www.acmicpc.net/problem/1343
문자열에서 문자 하나씩 확인하면서 교체할수 있는지 확인했고, 사전순이므로 AAAA 한 뒤 BB를 교체했다.
#include<stdio.h>
int check(char* s, int length, int start, int size) {
if (start + size > length)
return 0;
for (int i = 0; i < size; i++)
{
if (s[start + i] != 'X')
return 0;
}
return 1;
}
int main() {
// 0 initialize
int i, j, len;
char s[51];
scanf("%s", s);
// check length of s
for (i = 0; i < 51; i++)
{
if (s[i] == '\0') {
len = i;
break;
}
}
// 1 change XXXX to AAAA
for (i = 0; i < len; i++)
{
if (s[i] == 'X' && check(s, len, i, 4)) {
for (j = 0; j < 4; j++)
{
s[i + j] = 'A';
}
}
}
// 2 change XX to BB
for (i = 0; i < len; i++)
{
if (s[i] == 'X' && check(s, len, i, 2)) {
for (j = 0; j < 2; j++)
{
s[i + j] = 'B';
}
}
}
// 3 output
int flag = 0;
for (i = 0; i < len; i++)
{
if (s[i] == 'X') {
flag = 1;
break;
}
}
if (flag) {
printf("-1\n");
}
else {
printf("%s\n", s);
}
return 0;
}
다른 문제에서 계속 막혀서 쉬운문제로...
'STUDY > Algorithm' 카테고리의 다른 글
[백준] 16235 나무 재테크 python(pypy) (0) | 2022.03.10 |
---|---|
[백준] 10597 순열장난 python, c/c++ (0) | 2022.03.09 |
[백준] 17471 게리맨더링 python (0) | 2022.03.07 |
[백준] 15655 N과 M(6) python (0) | 2022.02.28 |
[백준] 11000 강의실 배정 python (0) | 2022.02.27 |