-
[2019 카카오 겨울인턴] 인형뽑기 (JAVA)알고리즘 공부/문제 풀이 2020. 5. 6. 19:51
package kakao; public class catchDoll { static int solution(int[][] board, int[] moves) { int answer = 0; int[] baguni=new int[1000]; int top=-1; int col; int row=0; for(int i=0;i<moves.length;i++){ row=moves[i]-1; for(col=0 ; col < board[0].length ; col++){ if(board[col][row] != 0){ baguni[++top]=board[col][row]; board[col][row]=0; break; } } if(top>0 && baguni[top]==baguni[top-1]){ answer +=2 ; top -= 2; } } return answer; } public static void main(String[] args) { // TODO Auto-generated method stub int[][] board= {{0,0,0,0,0},{0,0,1,0,3},{0,2,5,0,1},{4,2,4,4,2},{3,5,1,3,1}}; int[] moves= {1,1,1,1,1}; int ans=solution(board,moves); System.out.println(ans); } }
이차원 배열의 행과 열 생각할 때 헷갈렸던 문제이다
board[행][열]
인형 집게는 열에 접근! 행의 수를 늘리면서 접근
바구니는 스택으로 표현
처음에 바구니 크기를 작게해서 오답이라고 나왔다 ㅠㅠ
moves가 최대 1000임을 알고, 바구니의 크기를 1000이라 설정하니
모든 케이스 정답!
문제에서 주어지는 배열의 크기를 잘 확인할 것!
+ 변수의 범위
'알고리즘 공부 > 문제 풀이' 카테고리의 다른 글
[프로그래머스] 정렬 - 가장 큰 수 (1) 2020.08.06 [프로그래머스] 정렬 - k 번째 수 (1) 2020.08.06 [2019 카카오 겨울인턴] 호텔방 (JAVA) (0) 2020.05.08 [2019 카카오 겨울인턴] 불량사용자 (JAVA) (0) 2020.05.08 [2019 카카오 겨울인턴] 튜플 (JAVA) (0) 2020.05.06