🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
[프로그래머스] [Java] 크레인 인형뽑기 게임
문제 설명 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고
mozzioi.tistory.com
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)
[프로그래머스] 크레인 인형뽑기 게임 문제풀이 (Java)
[프로그래머스] 크레인 인형뽑기 게임 문제풀이 (Java)
velog.io
스택에 먼저 0을 넣어두시고, 겟또한 값이 0이 아닌 경우,
맨 위 값을 비교해서 answer를 구하는 식으로 푸셨다.
- 풀이2)
[프로그래머스,Level 1] 크레인 인형뽑기 게임(JAVA 구현)
- 첫 풀이 및 정답풀이 문제 내용이 좀 길긴 한데 천천히 읽어보면 별 문제 없다. 요점은 2차원 배열에는 1~100까지의 정수가 주어지는데, 이 정수는 서로 다른 인형들을 의미하는 것이며, 1차원 배
fbtmdwhd33.tistory.com
나중에 복습할 때 읽어봐야지
- 풀이3)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
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 |