Backend
home
🐂

[백준] 소가 길을 건너간 이유

생성일
2025/02/01 06:33
태그
BaekJoon
게시일
2025/02/01
최종 편집 일시
2025/02/01 07:45

문제

해결 방안 고민

소의 위치를 n번 관찰
소의 번호와 소의 위치 (3, 1) - (소의 번호, 소의 위치)
소 10마리를 가지고 있다 ⇒ 1 ~ 10 이하의 정수
소의 위치 - 왼쪽 (0), 오른쪽 (1)

해결 방법

원래 위치가 정해져 있지 않아 첫번째로 받는 위치는 이동한 횟수에 저장하지 않기 위해 배열을 -1로 채운다.
만약 위치가 -1인 경우 첫번째 이동이므로 카운트하지 않는다.
-1이 아닌 경우 현재 위치와 입력받은 위치를 비교하여 현재 위치를 넣어주고 카운트를 증가시켜준다.

코드

import java.util.*; import java.io.*; // 소가 길을 건너간 이유 - 브론즈 1 // 규칙 // 1, 0, 1 => 2번 // 1, 0, 1, 0 => 3번 // 1, 0 => 1번 // n => n - 1 public class Baek14467 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); // N 입력 int N = Integer.parseInt(br.readLine()); // 소 위치 배열 선언 int[] position = new int[11]; Arrays.fill(position, -1); // 원래 위치를 -1로 정해줌 // count 변수 선언 int count = 0; // 순회 for (int i = 0; i < N; i++) { StringTokenizer st = new StringTokenizer(br.readLine(), " "); int num = Integer.parseInt(st.nextToken()); // 소 번호 int pos = Integer.parseInt(st.nextToken()); // 소 위치 if (position[num] == -1) { // 처음 위치 확인 후 위치 변경 position[num] = pos; } else if (position[num] != pos) { // 위치 변화가 발생한 경우 position[num] = pos; count++; } } System.out.println(count); } }
Java
복사