Algorithm
[BOJ] 1439 뒤집기
일등하이
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]));
}
}
}
반응형