소의 위치를 N번 관찰하는데 이 관찰 결과로 알 수 있는 소의 위치변화의 최소 횟수를 출력하는 문제다.



해법


관찰 결과를 통해 변화를 확정할 수 있는 경우는 이전에 관찰을 했던 소이면서 다음에 관찰했을 때 위치가 바뀐 경우이다.


따라서 처음 관찰한 경우는 위치이동이라 확정할 수 없고 그 후에 이동이 관찰된 경우에만 ans++ 해준다.


#include <iostream>
using namespace std;
 
int main() {
    ios::sync_with_stdio(false); cin.tie(0);
    int n, c[10= { 0, }, ans = 0;
    for (int i = 0; i < 10++i) c[i] = -1;
    cin >> n;
    while (n--) {
        int a, b;
        cin >> a >> b;
        a--;
        if (c[a] == -1) {
            c[a] = b;
        }
        else if (c[a] != b) {
            c[a] = b;
            ans++;
        }
    }
    cout << ans;
    return 0;
}
cs


'BOJ' 카테고리의 다른 글

14469 소가 길을 건너간 이유 3  (0) 2018.11.10
14468 소가 길을 건너간 이유 2  (0) 2018.11.10
14175 The Cow-Signal  (0) 2018.11.10
14174 Block Game  (0) 2018.11.10
14173 Square Pasture  (0) 2018.11.10

+ Recent posts