프로그래머스 알고리즘 Level 1 2019 카카오 개발자 겨울 인턴쉽 크레인 인형뽑기 게임

2023. 1. 25. 20:59알고리즘/문제

https://school.programmers.co.kr/learn/courses/30/lessons/64061

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이 - 성공

class Solution {
    fun solution(board: Array<IntArray>, moves: IntArray): Int {
        var answer = 0
        val list = mutableListOf<Int>()
        for (moveIndex in moves.indices) {
            val moveColumn = moves[moveIndex] - 1
            for (itemRow in board.indices) {
                if (board[itemRow][moveColumn] != 0) {
                    val item = board[itemRow][moveColumn]
                    list.add(item)
                    board[itemRow][moveColumn] = 0
                    if (list.size > 1 && list.last() == list.elementAt(list.lastIndex - 1)) {
                        repeat(2) { list.removeLast() }
                        answer++
                    }
                    break
                }
            }
        }
        return answer*2
    }
}

 

평가 

다른 사람들의 코드도 거의 동일한 방식입니다.

객체지향이나 함수형은 아니지만

스택을 사용하거나 리스트를 사용해 맨 위에 두 개만 뽑아서 날려주고 answer++를 올리는 방식으로 했습니다.

그냥 평범한 문제 난이도라고 생각합니다.