www.acmicpc.net/problem/1439

 

1439번: 뒤집기

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

www.acmicpc.net

1. 문제풀이 방법

 

- 0과,1 의 그룹을 묶어서 더 그룹이 적은 쪽을 뒤집어 줘야 적은 횟수로 통일을 할 수 있다.

 

 

2. 주의사항

 

- 전 어려운 문제인줄 알았던게 문제를 잘못읽어서 연속된 두 숫자 이상 뒤집을 수 있다는 건줄 알았습니다;;

 

 

- 0010 의경우 1은 하나라서 못뒤집어서 앞에 00을 뒤집고 1110을 만든뒤 다시 111을 뒤집어 0000을 만들어야

되는 줄 알고 꽤나 머리를 굴렸는데....알고보니 매우 간단한...문제.......문제를 꼼꼼히 똑바로 읽자 !

 

 

 

3.나의 코드

include<iostream>
#include<string>
#include<algorithm>
using namespace std;


int count0;
int count1;
int resultcount;
int main() {


	string inputs;
	cin >> inputs;
	if (inputs[0] == '0') { count0++; }
	else { count1++; }

	int nows=inputs[0];

	for (int i = 1; i < inputs.length(); i++) {
		if (inputs[i] != nows) {
			if (inputs[i] == '0') { count0++; nows = inputs[i]; }
			else { count1++; nows = inputs[i]; }
		}
	}
	cout << min(count0, count1) << "\n";
	return 0;
}

'알고리즘 문제풀이 > 그리디' 카테고리의 다른 글

백준 8980 [C++]  (0) 2020.12.05
백준 1969 : DNA  (0) 2020.03.24
백준 1138  (0) 2020.02.28
백준 1049  (0) 2020.02.23
백준 1946  (0) 2020.02.23

+ Recent posts