본문 바로가기

코테문제

[백준] B14467

Q. https://www.acmicpc.net/problem/14467

 

14467번: 소가 길을 건너간 이유 1

3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다.

www.acmicpc.net

 

# 아이디어

1. 소의 번호 인덱싱한 배열 생성

2. 배열 -1로 초기화

3. cow[] 의 값이 !(-1 또는 이전과 같은 값)이면 cnt++

 

소의 인덱싱

0 1 2 3 4 5 6 7 8 9
-1 1 1 1 -1 0 -1 -1 -1 -1
    0 0            
    0              
    1              

 

=> cow[2] : 1->0 cnt++, 0->1 cnt++

=> cow[3] : 1->0 cnt++

 

💯💯💯

※ String 출력: String.format, + 연산자, StringBuilder, StringTokenizer

 코드를 다시 볼 때 깔끔하게, 보기 쉽게 하는 것을 목표로 하자!!!

import java.utils 라이브러리에 익숙해지자!!!

 

# Arrays.fill() 사용하여 배열을 모두 같은 값으로 초기화.

 

코드 변경 전

package baekjoon;

import java.util.Scanner;

public class B14467 {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int input = sc.nextInt();

		int[] cow = new int[10];
		for (int i = 0; i < cow.length; i++) {
			cow[i] = -1;
		}

		int cnt = 0;
		int cowIndex, cowLocation;
		for (int i = 0; i < input; i++) {
			cowIndex = sc.nextInt();
			cowLocation = sc.nextInt();

			if ((cow[cowIndex - 1] != cowLocation) && (cow[cowIndex - 1] != -1))
				cnt++;

			cow[cowIndex - 1] = cowLocation;

		}
		System.out.println(cnt);

		sc.close();

	}

}

 

코드 변경 후

=> BufferedReader로 바꾸려는데 쉽지가 않다... StringTokenizer를 사용하네???

'코테문제' 카테고리의 다른 글

[백준] B11170  (0) 2023.10.12
[백준] B2460  (0) 2023.09.29
[백준] S17276 미완성  (0) 2023.09.27
[백준] S1913  (0) 2023.09.24
[백준] S20546  (0) 2023.09.15