ABC124-D : Handstand

Handstand (Need to Review!)

https://atcoder.jp/contests/abc124/tasks/abc124_d

  • 아이디어 자체는 매우 간단하다. 붙어있는 0이나 1의 개수를 세서 큐에 넣고 조건을 만족할때만 ans와 max인지 비교해주면 된다.
  • 문제는 단순히 “조건”이라고 하고 구현을 시작하면 실수가 시작된다는 점이다. 면밀하게 조건을 짜고, 코너케이스들을 생각할 수 있어야 한다.
  • 이번 경우는 0으로 끝나는 경우가 답이 될 때를 고려하지 못했다.

Coloring Colorfully

https://atcoder.jp/contests/abc124/tasks/abc124_c

  • 매우 단순한 문제, 홀짝을 나눠서 생각하면 끝난다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
int main() {
  ios::sync_with_stdio(false);
  string S;
  cin >> S;
  
  int zStart, oStart = 0;
  for (int i = 0; i < S.size(); i++) {
    zStart += i % 2 ? (S[i] != '1') : (S[i] != '0');
	oStart += i % 2 ? (S[i] != '0') : (S[i] != '1');
  }
  cout << min(zStart, oStart);
}

Great Ocean View

https://atcoder.jp/contests/abc124/tasks/abc124_b

  • A는 너무 쉬워서 기록 생략, B도 쉬울걸 예상하고 C에 붙여서 기록
  • 문제 읽었는데, 그냥 max를 유지하고 바뀌는 수만 세면됨