다희의 코딩 성장일기
[프로그래머스] level1. 크레인 인형뽑기 게임 (자바 JAVA) 본문
[ 문제 ] [프로그래머스] level1. 크레인 인형뽑기 게임 (자바 JAVA)
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/64061
# 접근 방법 및 풀이
- 스택을 이용해서 풀었다. 스택에 2개이상 같은 값이 들어있다면 cnt를 증가시켜준다.
- 스택은 최신에 들어간 값이 꼭대기에 있기 때문에 스택이 비어있지 않다면, 꼭대기 값이랑 현재 넣을 값이 같으면 pop해서 빼주고 cnt+2씩 하면된다.
# 주의할 점
- 모든 행에 대해서 탐색할때 0이 아닌 숫자를 발견한 후 break할 것
JAVA 코드
import java.util.*;
class Solution {
public int solution(int[][] board, int[] moves) {
int answer = 0;
Stack<Integer> stack = new Stack<>();
for(int k = 0 ; k < moves.length; k++){
int j = moves[k]-1;
for(int i = 0; i < board.length; i++){
if(board[i][j]!=0){
int num = board[i][j];
board[i][j] = 0;
if(stack.isEmpty()){
stack.add(num);
}else{
if(stack.peek() == num){
stack.pop();
answer+=2;
}else{
stack.add(num);
}
}
break;
}
}
}
return answer;
}
}
REVIEW
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] level1. 행렬의 덧셈 (자바 JAVA) (0) | 2021.08.19 |
---|---|
[프로그래머스] level1. 직사각형 별찍기 (자바 JAVA) (0) | 2021.08.19 |
[프로그래머스] level1. 위클리 챌린지 1주차 (자바 JAVA) (0) | 2021.08.19 |
[프로그래머스] level1. 숫자 문자열과 영단어 (자바 JAVA) (0) | 2021.08.19 |
[프로그래머스] level1. 신규 아이디 추천 (자바 JAVA) (0) | 2021.08.19 |
Comments