-
[java] 프로그래머스 크레인 인형뽑기알고리즘 2023. 8. 9. 18:23
https://school.programmers.co.kr/learn/courses/30/lessons/64061
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*; class Solution { public int solution(int[][] board, int[] moves) { int cnt = 0; int row= board.length; int col= board[0].length; Stack<Integer> st = new Stack<>(); for(int i=0; i<moves.length; i++){ for(int j=0; j<col; j++){ int target = board[j][moves[i]-1]; if(target>0){ if(st.size()>0 && st.peek()==target){ st.pop(); board[j][moves[i]-1]=0; cnt += 2; break; }else{ st.add(target); board[j][moves[i]-1]=0; break; } } } } return cnt; } }
주의할점
1. 2차원배열의 행과 열
2. 배열은 0,0 ~ 시작하니까 board에서 젤 위에 값을 구할 때는 for문은 i=0부터 시작하면 된다.
3.stack은 LIFO 나중에 들어온 것이 먼저 나간다. Queue는 FIFO
4.공통적인 사항은 IF문에서 빼도 될듯
'알고리즘' 카테고리의 다른 글
[java] 백준 14889 : 스타트와 링크 (0) 2023.08.31 [java] 프로그래머스 다트 게임 (0) 2023.08.10 프로그래머스 할인행사 (0) 2023.08.08 [java] 백준 16967 : 배열 복원하기 (0) 2023.08.06 [java] 프로그래머스 두 큐 합 같게 만들기 (0) 2023.08.06