[Programmers / Level 1] 64061. 크레인 인형뽑기 / 2019 카카오 개발자 겨울 인턴십 (Java)

이하얀·2024년 11월 9일
0

🕊️ 프로그래머스

목록 보기
67/82

💡 Info




입출력 조건




입출력 예시




문제 이해




알고리즘


풀이 시간 : 49분

  • 인형이 있으면 -> 해당 칸은 0으로 설정하기
  • 스택 사용
    • 같은 인형이면 제거하고, 터트린 인형 개수를 증가
    • 인형이 바구니 맨 위와 다를 경우에도 -> 인형을 바구니에 넣기
import java.util.*;

class Solution {
    public int solution(int[][] board, int[] moves) {
        int answer = 0;
        Stack<Integer> basket = new Stack<>();

        for (int move : moves) {
            move -= 1;

            for (int i = 0; i < board.length; i++) {
                int doll = board[i][move];

                if (doll != 0) {
                    board[i][move] = 0;

                    if (!basket.isEmpty() && basket.peek() == doll) {
                        basket.pop();
                        answer += 2;
                    } else {
                        basket.push(doll);
                    }
                    break;
                }
            }
        }

        return answer;
    }
}


결과


profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글