반응형
🔺 문제
🔺 코드
import java.util.*;
class Solution {
public int solution(int[][] board, int[] moves) {
int answer = 0; // 터뜨려 사라진 인형 개수
Stack<Integer> bucket = new Stack<>();
for(int move : moves) {
for(int i = 0 ; i < board.length ; i++) {
if(board[i][move - 1] == 0) {
continue;
} else {
if(!bucket.isEmpty() && board[i][move-1] == bucket.peek()) {
answer += 2;
bucket.pop();
} else {
bucket.add(board[i][move-1]);
}
board[i][move - 1] = 0; // 인형 뽑기
break;
}
}
}
return answer;
}
}
✅ 해결 아이디어
- 스택 사용
🔺 다른 풀이들
- 풀이1)
스택에 먼저 0을 넣어두시고, 겟또한 값이 0이 아닌 경우,
맨 위 값을 비교해서 answer를 구하는 식으로 푸셨다.
- 풀이2)
나중에 복습할 때 읽어봐야지
- 풀이3)
import java.util.ArrayList;
class Solution {
public int solution(int[][] board, int[] moves) {
int answer = 0;
ArrayList<Integer> list = new ArrayList<>();
for (int j : moves) {
for (int i = 0; i < board.length; i++) {
if (board[i][j-1] != 0) {
if (list.size() == 0) {
list.add(board[i][j-1]);
}
else if(list.get(list.size()-1) == board[i][j-1]) {
list.remove(list.size()-1);
answer += 2;
}
else {
list.add(board[i][j-1]);
}
board[i][j-1] = 0; // 인형 뽑기
break;
}
}
}
return answer;
}
}
리스트를 활용하셨다!
리스트도 remove가 가능하구나,,,,
💬 느낀 점
스택 사용할 생각은 했었는데.. 그 인덱스를 어찌 처리할지 고민하다가 ,, 그렇게 됐다...(?)😓
언제쯤 잘할 수 있을까!!!
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[MySQL] IS NULL (0) | 2023.04.05 |
---|---|
[프로그래머스/Lv. 1] 덧칠하기 (0) | 2023.04.04 |
[프로그래머스/Lv. 1] 카드 뭉치 (0) | 2023.04.04 |
[프로그래머스/Lv. 1] 과일 장수 (0) | 2023.04.04 |
[프로그래머스/Lv. 1] 기사단원의 무기 (0) | 2023.04.04 |