본문 바로가기
알고리즘/JAVA

3. 크레인 인형뽑기(카카오)

by vivi 2021. 9. 22.
import java.util.*;

class Main {
	public int solution(int N, int[][] board, int move, int[] moves) {
		int answer = 0;
		Stack<Integer> stack = new Stack<>();

		for (int i = 0; i < move; i++) {
			for (int j = 0; j < N; j++) {
				if (board[j][moves[i] - 1] != 0) {
					if (stack.isEmpty()) {
						stack.push(board[j][moves[i] - 1]);
					} else {
						if (stack.lastElement() != board[j][moves[i] - 1]) {
							stack.push(board[j][moves[i] - 1]);
						} else {
							answer += 2;
							stack.pop();
						}
					}
					board[j][moves[i] - 1] = 0;
					break;
				}
			}
		}
		return answer;
	}

	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		int N = kb.nextInt();
		int[][] board = new int[N][N];
		for (int i = 0; i < N; i++) {
			for (int j = 0; j < N; j++)
				board[i][j] = kb.nextInt();
		}
		int move = kb.nextInt();
		int[] moves = new int[move];
		for (int i = 0; i < move; i++)
			moves[i] = kb.nextInt();
		System.out.print(T.solution(N, board, move, moves));
		kb.close();
	}
}

 

import java.util.*;

class Main {
	public int solution(int N, int[][] board, int move, int[] moves) {
		int answer = 0;
		Stack<Integer> stack = new Stack<>();
		for (int pos : moves) {
			for (int i = 0; i < board.length; i++) {
				if (board[i][pos - 1] != 0) {
					int tmp = board[i][pos - 1];
					board[i][pos - 1] = 0;
					if (!stack.isEmpty() && tmp == stack.peek()) {
						answer += 2;
						stack.pop();
					} else
						stack.push(tmp);
					break;
				}
			}
		}
		return answer;
	}

	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		int N = kb.nextInt();
		int[][] board = new int[N][N];
		for (int i = 0; i < N; i++) {
			for (int j = 0; j < N; j++)
				board[i][j] = kb.nextInt();
		}
		int move = kb.nextInt();
		int[] moves = new int[move];
		for (int i = 0; i < move; i++)
			moves[i] = kb.nextInt();
		System.out.print(T.solution(N, board, move, moves));
		kb.close();
	}
}

'알고리즘 > JAVA' 카테고리의 다른 글

5. 쇠막대기  (0) 2021.09.23
4. 후위식 연산(postfix)  (0) 2021.09.23
2. 괄호문자제거  (0) 2021.09.22
1. 올바른 괄호  (0) 2021.09.22
5. K번째 큰 수  (0) 2021.09.22

댓글