-
백준 14467 - 소가 길을 건너간 이유(JAVA)Algorithm 2022. 9. 25. 14:01728x90
14467번: 소가 길을 건너간 이유 1 (acmicpc.net)
오늘 풀어본 문제는 소가 길을 건너간 이유이다. 이 문제는 두 번째 열에서 1과 0의 position이 바뀌는 시점을 잘 파악하여 그때 마다 count를 올려주면 해결될 수 있을 것이라고 생각했다.
※ 알고리즘
1. 숫자를 입력받고 소가 총 10마리 있으므로 2차원 배열로 행렬을 표현해 준다.
2. 두 번째 열에 0을 입력해 두고 행이 10번 바뀔 수 있으므로 반복문을 이용해 arr[i][0]을 고정값 -1로 지정해둔다.
3. num과 place를 StringTokenizer를 이용해서 입력받는다.
4. 해당값이 -1로 고정이 되어 있으면 position이 그대로 이므로 그대로의 값에서 place로 받은 변수를 넣어준다.
5. 만약 그 값이 기존의 place와 다르다면 position이 변경된 것이므로 count++ 해주고, 다시 다른 place 값으로 배열 값을 변경시켜 준다.
6. count 된 숫자를 출력
위 알고리즘을 그대로 따라 내려오면 이와 같이 해결할 수 있다.
이 프로그램에서 주의해야 할 부분은 -1로 초기화 하는 부분이다. 초기화를 할 때 0과 1이 아닌 숫자를 넣어주어야 하는데 이때는 전혀 상관없는 -1과 같은 숫자를 써주는 것이 좋다. 이 초기화 값을 기준으로 position의 변경, 미변경을 파악해 줄 수 있기 때문에 가장 큰 key point 이다.
728x90'Algorithm' 카테고리의 다른 글
백준 1296 - 팀 이름 정하기(JAVA) (0) 2022.09.27 백준 11050 - 이항 계수1(JAVA) (1) 2022.09.25 백준 2902 - KMP는 왜 KMP일까? (JAVA) (0) 2022.09.20 백준 1225 - 이상한 곱셈(JAVA) (0) 2022.09.20 백준 2798 - 블랙잭(JAVA) (0) 2022.09.18