본문 바로가기
c#/알고리즘

1343번 폴리오미노

by Luna_O 2020. 6. 1.

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

 

1343번: 폴리오미노

첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.

www.acmicpc.net

민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB

이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다.

폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.

AAAA, BB 두개를 가지고 있고 자릿수를 보면 AAAA는 4개, BB는 2개이다

X의 갯수로 끊어서 알파벳을 알맞게 출력해주면 될 듯

자릿수로 끊어지지 않으면 -1 출력

.은 그냥 구분하는 점이라고 생각하고 자릿수가 맞게 되어있다면 같이 출력하면 됨

단, AAAA, BB 두개를 합치면 6자리이다 그래서, X가 연속으로 6개가 되어있다면 AAAABB 출력하면 됨

입력받은 x가 4개면 AAAA, 2개면 BB

 

처음에 너무 어렵게 생각해서 안풀렸다...너무 돌아왔어.....이리 간단한 것을ㅠㅠㅠㅠ엉엉

값 받아서 Replace로 XXXX, XX 찾아서 바꿔주고 나머지 하나 남아있으면 -1 

X 값 안남아 있으면 그냥 출력.....하하하 그래도 풀었당

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
namespace _1343
{
    class Program
    {
        static void Main(string[] args)
        {
            var input = Console.ReadLine();
 
            input = input.Replace("XXXX""AAAA");
            input = input.Replace("XX""BB");
 
            if(input.Contains("X"))
            {
                Console.Write("-1");
                return;
            }
 
            Console.Write(input);
            
        }
    }
}
cs