문제: 1439번: 뒤집기
#include <map>
#include <set>
#include <cmath>
#include <queue>
#include <stack>
#include <vector>
#include <string>
#include <iostream>
#include <algorithm>
#include <iomanip> // setprecision을 사용하기 위한 헤더
#include <climits>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
string input;
cin >> input;
// 0으로만 이루어진 부분, 1로만 이루어진 부분의 개수를 각각 셈
// 0으로만 이루어진 부분이 1로만 이루어진 부분의 개수보다 크다면?
// 1로만 이루어진 부분을 다 뒤집으면 됨
// 반대도 마찬가지
// 맞으면 좋겠다...
int zeroCnt = 0;
int oneCnt = 0;
char prev = '-1';
if (input[0] == '0') {
zeroCnt++;
prev = '0';
}
else {
oneCnt++;
prev = '1';
}
for (int i = 1; i < input.size(); i++) {
if (input[i] == '1') {
if (prev != '1')
oneCnt++;
}
else {
if (prev!= '0')
zeroCnt++;
}
prev = input[i]; // 이전 값 갱신
}
cout << (oneCnt > zeroCnt ? zeroCnt : oneCnt) << "\n";
return 0;
}
한 번에 맞아서 기분이 좋았다. 5일 뒤면 시험이라 티스토리 공부하느라 티스토리 이번주에 잘 못왔다.. 시험 끝날 때까지 잘 못 올 것 같긴 한데 아무튼 백준 문제 새로운거 풀 때마다 들려야겠다.
사실 문제는 맨날 풀었는데 정리할 시간이 없어서 안 하긴 했다..
근데 오늘 문제는 쉬워서 뭐 더 설명할 것도 없다. 그냥 다음에 복습할 때 주석만 잘 보면 될 듯하다! 굳!!
'백준 문제 > 그리디' 카테고리의 다른 글
[백준] 8980번 택배 (0) | 2024.12.05 |
---|---|
[백준] 1744번 수 묶기 (0) | 2024.11.15 |
[백준] 11000 강의실 배정 (3) | 2024.11.10 |
[백준] 1946번 신입 사원 (0) | 2024.11.06 |
[백준] 12904번 A와 B (0) | 2024.11.05 |