[BOJ] 1439 뒤집기

Algorithm 2023. 1. 16. 01:41
반응형

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

 

1439번: 뒤집기

다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모

www.acmicpc.net

using System;
using System.Collections.Generic;
using System.Linq;

namespace _1439
{
    
    class Program
    {
        static void Main()
        {
            // 특정 수로 통일시키기 위해서, 0을 1로 바꾸거나 1을 0으로 바꿔야한다.
            //
            // 연속된 하나 이상의 숫자를 모두 뒤집는 것이 가능하므로 
            //
            // 연속된 숫자가 k개 있을 경우 k개를 한번에 뒤집는 것이 optimal solution이다.
            //
            // 1이 연속되는 부분이 몇 개 있는지, 0이 연속되는 부분이 몇 개 있는지 확인한 다음 둘 중 가장 적은 것을 택하는 것이 답이 된다.
                
            var str =  Console.ReadLine();
            var arr = Array.ConvertAll(str.ToArray().Select(x => x.ToString()).ToArray(), int.Parse);
            int a = -1;
            int[] arr2 = new int[2];
            
            for (int i = 0; i < arr.Length; i++)
            {
                if(a != arr[i])
                {
                    a = arr[i];
                    if (a == 0) arr2[0]++;
                    else arr2[1]++;
                }
            }


            Console.WriteLine("{0}", Math.Min(arr2[0], arr2[1]));
        }
    }
}
반응형

'Algorithm' 카테고리의 다른 글

[BOJ] 1874 스택 수열  (0) 2023.01.16
[BOJ] 9093 단어 뒤집기  (0) 2023.01.16
[BOJ] 5585 거스름돈  (0) 2023.01.16
[BOJ] 11283 한글  (0) 2023.01.13
[BOJ] 2475 검증수  (0) 2023.01.13
: