본문 바로가기
알고리즘 & 자료구조/프로그래머스

크레인 인형뽑기 게임

by 신재권 2022. 3. 30.
import java.util.Stack;

class Solution {
    public static int solution(int[][] board, int[] moves) {

		Stack<Integer> basket = new Stack<>();
		int answer = 0;

		for (int i = 0; i < moves.length; i++) {
			int movePosition = moves[i] - 1;
			for (int j = 0; j < board.length; j++) {
				if (board[j][movePosition] != 0) {
					int dollNumber = board[j][movePosition];
					answer += pushBasket(basket, dollNumber);
					board[j][movePosition] = 0;
					break;
				}
			}
		}

		return answer;
	}

	public static int pushBasket(Stack<Integer> basket, int dollNumber) {

		if (!basket.empty()) {
			int peek = basket.peek();
			if (dollNumber == peek) {
				basket.pop();
				return 2;
			} else {
				basket.push(dollNumber);
			}
		} else {
			basket.push(dollNumber);
		}
		return 0;
	}
}

인형을 담는공간인 basket을 Stack 형태로 만들었다.

Stack에 넣기전 똑같은 인형 2개인지 검사를 한 후 처리를 해준다.

'알고리즘 & 자료구조 > 프로그래머스' 카테고리의 다른 글

단체 사진 찍기  (0) 2022.04.13
카카오 프렌즈 컬러링북  (0) 2022.04.02
숫자 문자열과 영단어  (0) 2022.03.29
오픈채팅방  (0) 2022.03.28
문자열 압축 [Java]  (0) 2022.03.12