[ Solution ]
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[][] arr = new int[11][1];
int cow_sum = 0;
for(int i = 1; i < 11; i++) {
arr[i][0] = -1;
}
StringTokenizer st;
for(int i = 0; i < n; i++) {
st = new StringTokenizer(br.readLine(), " ");
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
if(arr[a][0] == -1) {
arr[a][0] = b;
}
else {
if(arr[a][0] != b) {
cow_sum++;
arr[a][0] = b;
}
}
}
System.out.println(cow_sum);
}
}
이 문제는 실버지만 높지 않았던 난이도!
소의 번호에 해당하는 배열 인덱스의 값이 변하는 횟수만 체크해주면 된다.
2차원 배열에서 첫번째 열은 소의 번호이고, 두번째 열은 소의 위치를 나타내는데, 우선 소의 위치는 모두 -1로 초기화 해준다.
이후에 소의 관찰 횟수 만큼 소의 위치를 입력 받을 때, 한 번도 위치를 입력 받지 않았다면 그대로 넣어주고, 아니라면 현재 입력하고자 하는 값과 배열에 입력되어 있는 값을 비교하여 다르면 cow_sum(소가 길을 건너간 횟수를 나타내는 변수)을 1 증가시키고 배열의 값을 갱신시켜 준다.