반응형
문제 링크: https://www.acmicpc.net/problem/1439
1439번: 뒤집기
다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모
www.acmicpc.net
<문제 풀이> 그리디 알고리즘
연속된 숫자를 한 번에 뒤집을 수 있기 때문에, 먼저 연속된 숫자들을 하나로 합쳐줍니다.
그리고 남은 숫자들 중에서 개수가 더 적은 숫자를 하나씩 뒤집어주면 됩니다.
0001100
-> 010
-> 000 (1번)
<C++소스코드>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include<iostream> #include<string> #include<algorithm> using namespace std; int main() { ios_base::sync_with_stdio(false); string s; cin >> s; char c = s[0]; for (int i = 1; i < s.length(); i++) { if (c == s[i])s[i] = '.'; else { c = s[i]; } } int zero = count(s.begin(), s.end(), '0'); int one = count(s.begin(), s.end(), '1'); cout << min(zero, one); return 0; } | cs |
반응형
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[백준 2283] 구간 자르기 (0) | 2023.08.30 |
---|---|
[백준 17521번] Byte Coin (0) | 2023.04.24 |
[백준 20365번] 블로그2 (0) | 2023.04.23 |
[백준 20115번] 에너지 드링크 (0) | 2023.04.22 |
[백준 1343번] 폴리오미노 (0) | 2023.04.22 |