BOJ
14467 소가 길을 건너간 이유 1
공부정리
2018. 11. 10. 15:59
소의 위치를 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 |