-
Level1) 크레인 인형뽑기 게임PS/programmers 2020. 9. 11. 16:45
import java.util.Stack; class Solution { public int solution(int[][] board, int[] moves) { int answer = 0; Stack<Integer> basket = new Stack<Integer>(); for (int move : moves) { for (int i = 0; i < board.length; i++) { if (board[i][move-1] != 0) { if (basket.isEmpty() || basket.peek() != board[i][move-1]) { basket.push(board[i][move-1]); } else if (basket.peek() == board[i][move-1]) { basket.pop(); answer += 2; } board[i][move-1] = 0; break; } } } return answer; } }
- 성공
- 인형을 담는 방식을 보고 스택을 사용해야겠다고 생각
- 인형뽑기 기계에서 0이 아닌 수를 위에서부터 찾기 (크레인이 위에서 부터 인형을 뽑아가니까)
- 바구니가 비어있거나 바구니의 제일 위에 있는값이 방금 뽑은 인형과 같지 않다면 바구니에 넣기
- 만약에 바구니의 맨 위에 있는 값이 뽑은 인형값과 같다면 바구니에서 인형을 꺼내고 정답에 +2
- 기계에서 인형을 꺼냇으면 0으로 만들어주고 인형을 계속 꺼낼 수도 있으니 break;
'PS > programmers' 카테고리의 다른 글
Level1) 제일 작은 수 제거하기 (0) 2020.09.12 Level1) 이상한 문자 만들기 (0) 2020.09.11 Level1) 정수 내림차순으로 배치하기 (0) 2020.09.11 Level1) 핸드폰 번호 가리기 (0) 2020.09.11 Level1) 자연수 뒤집어 배열로 만들기 (0) 2020.09.11