문제
인형뽑기를 하여 뽑은 인형을 1자형 바구니에 담을 때 같은 인형이 연속으로 있으면 터지며, 몇 개의 인형이 터졌는지 반환하는 문제
풀이 과정
- 2차원 배열로 주어진 인형뽑기 기계의 인형들( board[x][y] )에서 y축이 크레인의 위치, x축이 크레인이 인형을 뽑으러 내려가는 길
- 뽑은 인형 자리는 0으로 바꿔주고 뽑은 인형은 스택에 담아 준다.
- 만약 스택에 연속으로 같은 숫자가 있다면 answer+=2 이후 펑
코드
import java.util.*
class Solution {
fun solution(board: Array<IntArray>, moves: IntArray): Int {
var answer = 0
//Stack
val bucket = Stack<Int>()
for(y in moves){
for(x in board.indices){
if(board[x][y-1] != 0){
//같은 숫자가 연속으로 있다면
if(bucket.isNotEmpty() && bucket[bucket.size-1] == board[x][y-1]){
bucket.pop()
answer += 2
}
else {
bucket.push(board[x][y-1])
}
board[x][y-1] = 0
break
}
}
}
return answer
}
}
'코딩 테스트 > Lv.1' 카테고리의 다른 글
[프로그래머스] 실패율 with Kotlin (0) | 2023.11.06 |
---|---|
[프로그래머스] 둘만의 암호 with Kotlin (0) | 2023.11.06 |
[프로그래머스] 키패드 누르기 with Kotlin (0) | 2023.11.06 |
[프로그래머스] 햄버거 만들기 with Kotlin (0) | 2023.11.06 |
[프로그래머스] 바탕화면 정리 with Kotlin (0) | 2023.11.06 |