[BOJ] 1439 뒤집기
Algorithm 2023. 1. 16. 01:41반응형
https://www.acmicpc.net/problem/1439
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 |