1343

#include <stdio.h>
#include <string.h>

int main(void){
    char str [50] ={0};
    scanf("%s", &str);

    int count = 0, is_x = 0, is_break = 0;
    char result[strlen(str)+1];

    // 폴리오미노
    for(int i = 0; i <= strlen(str); i++){
        // 보드판의 문자열 구분
        if(str[i] == 'X'){
            // X면 count 증가
            count ++;
            is_x = 1;
        }
        else if(str[i] == '.'){
            result[i] = '.';
            is_x = 0;
        }
        else{
            result[i] = '\0';
        }
        
        // 만약 현재 값이 X가 아니거나
        // 현재 인덱스가 마지막인덱스일 경우
        if(!is_x || i == (strlen(str))){
            // 만약 X의 개수가 홀수 일 경우
            if(count % 2 == 1){
                // 덮을 수 없어 중단
                is_break = 1;
                break;
            }
            
            // 만약 X의 개수가 2개면 
            // result배열의 i-1, i-2에 B 저장
            if(count == 2){
                count = 0;
                result[i-2] = 'B';
                result[i-1] = 'B';
            }
        }
        else{
            // 만약 X의 개수가 4개면
            // result배열의 i~i-3번째에 A 저장
            if(count == 4){
                    count = 0;
                    result[i-3] = 'A';
                    result[i-2] = 'A';
                    result[i-1] = 'A';
                    result[i] = 'A';
                }
        }
    }

        

    // 만약 중단되었다면
    if(is_break){
        // -1 출력
        printf("-1");
    }
    else{
        // 중단 안되었으면 result 출력
        printf("%s", &result);
    }

    return 0;
}

코드가 드러븐편

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

[ 백준 / C ] 10804번 : 카드 역배치  (0) 2025.09.26
[ 백준 / C ] 5698번 : Tautogram  (0) 2025.09.25
[ 백준 / C ] 1681번 : 줄 세우기  (0) 2025.09.23
[ 백준 / C ] 5339번 : 콜센터  (0) 2025.09.22
[ 백준 / C ] 9295번 : 주사위  (0) 2025.09.19

+ Recent posts