
🔍문제 분석
✔️ 출처
https://school.programmers.co.kr/learn/courses/30/lessons/64061
📖 문제


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]] 이런식이다.
Stack을 사용하여 peek함수로 제일 위의 값을 꺼내 크레인으로 뽑은 값과 같으면 pop()으로 제거하고 answer에 2를 더하고 원래 인형 위치의 값는 0으로 초기화 해준다.
🔅 문제 풀이
import java.util.Stack;
class Solution {
public int solution(int[][] board, int[] moves) {
Stack<Integer> stack = new Stack<>();
int answer = 0;
for(int i = 0; i < moves.length; i++) {
int index = moves[i] - 1;
for(int j = 0; j < board.length; j++) {
// 인형이 있다면
if(board[j][index] > 0) {
if(!stack.isEmpty()){
//중복 값이 있다면
if(stack.peek() == board[j][index]){
stack.pop();
answer += 2;
board[j][index] = 0;
break;
}else{ //중복값이 없다면
stack.push(board[j][index]);
board[j][index] = 0;
break;
}
}else{ // 처음 바구니에 넣기
stack.push(board[j][index]);
board[j][index] = 0;
break;
}
}
}
}
return answer;
}
}

❗ 오답노트 / 필요한 지식
- 모든 경우의 수를 체크하자. 이 문제의 경우 (중복값이 없다면)을 작성하지 않아서 자꾸 실패가 떴었다.. 아직도 이런실수를 하다니 너무 부끄럽다.
'programmers > Kakao' 카테고리의 다른 글
2019 KAKAO BLIND RECRUITMENT 실패율 (0) | 2024.06.27 |
---|---|
2021 카카오 채용연계형 인턴십 - 숫자 문자열과 영단어 (0) | 2024.06.26 |
2018 KAKAO BLIND RECRUITMENT [1차] 비밀지도 (0) | 2024.06.26 |