[Java알고리즘] 5-3. 크레인 인형뽑기(카카오)

🌼 Problem

https://programmers.co.kr/learn/courses/30/lessons/64061

![]


🍔 Solution + 강사

public static int Solution() {
	int count = 0;
	int[][] arr = new int[5][5];

	arr[0][0] = 0;
	arr[0][1] = 0;
	arr[0][2] = 0;
	arr[0][3] = 0;
	arr[0][4] = 0;

	arr[1][0] = 0;
	arr[1][1] = 0;
	arr[1][2] = 1;
	arr[1][3] = 0;
	arr[1][4] = 3;

	arr[2][0] = 0;
	arr[2][1] = 2;
	arr[2][2] = 5;
	arr[2][3] = 0;
	arr[2][4] = 1;

	arr[3][0] = 4;
	arr[3][1] = 2;
	arr[3][2] = 4;
	arr[3][3] = 4;
	arr[3][4] = 2;

	arr[4][0] = 3;
	arr[4][1] = 5;
	arr[4][2] = 1;
	arr[4][3] = 3;
	arr[4][4] = 1;

	int[] moves = {1, 5, 3, 5, 1, 2, 1, 4};
	Stack<Integer> st = new Stack<>();

	for (int j : moves) {
		for (int i = 0; i < arr.length; i++) {
        
			if (arr[i][j - 1] != 0) {
				// 인형이 있는 곳까지 내려가기 위해 arr[i][j-1]!=0
				if (!st.isEmpty() && st.peek() == arr[i][j - 1]) {
						// 동일한 경우는 없애야함
						st.pop();
						count += 2;
				} else {
				// stack에 맨 위에 있는 인형과 동일하지 않은 경우
						st.push(arr[i][j - 1]);
				}

					arr[i][j - 1] = 0;
					break;
				}
			}
            
		System.out.println(st);
		}
return count;

}


import java.util.Scanner;
import java.util.Stack;

public class Main {

	public static int Solution2(int[][] arr, int[] moves) {
		int count = 0;
		Stack<Integer> st = new Stack<>();

		for (int j : moves) {
			for (int i = 0; i < arr.length; i++) {
            
				if (arr[i][j - 1] != 0) {
					if (!st.isEmpty() && st.peek() == arr[i][j - 1]) {
							st.pop();
							count += 2;
					} else {
							st.push(arr[i][j - 1]);
					}

				arr[i][j - 1] = 0;
				break;
			}
		}
	}
				return count;
}



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

		int n = sc.nextInt();
		int[][] arr = new int[n][n];

		for (int i = 0; i < n; i++) {
			for (int j = 0; j < n; j++) {
					arr[i][j] = sc.nextInt();
			}
		}

		int m = sc.nextInt();
		int[] moves = new int[m];
		for (int i = 0; i < m; i++) {
				moves[i] = sc.nextInt();
		}

		System.out.println(Solution2(arr, moves));

	}
}

좋은 웹페이지 즐겨찾기