코딩테스트 문제풀이/프로그래머스

[프로그래머스] 크레인 인형뽑기 게임

itaeiou 2020. 9. 25. 00:02
반응형

프로그래머스

2019 카카오 개발자 겨울 인턴십

programmers.co.kr/learn/courses/30/lessons/64061

 

코딩테스트 연습 - 크레인 인형뽑기 게임

[[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4

programmers.co.kr

JAVA

import java.util.ArrayList;

class Solution {
    public int solution(int[][] board, int[] moves) {
        int answer = 0;
        int flag = 0;
        int n = board[0].length;
        
        ArrayList temp = new ArrayList();
        for(int m=0; m<moves.length; m++) {
            int dool = 0;
            int mval = moves[m]-1;
            for(int i=0; i<n; i++) {
                if(board[i][mval] != 0) {
                    dool = board[i][mval];
                    board[i][mval] = 0;
                    break;
                }
            }
            if(dool != 0) {
                temp.add(dool);
            }
        }
        
        while(flag == 0) {
            flag = 1;
            if(temp.size() > 1) {
                for(int i=1; i<temp.size(); i++) {
                    if(temp.get(i-1) == temp.get(i)) {
                        temp.remove(i);
                        temp.remove(i-1);
                        answer += 2;
                        flag = 0;
                        break;
                    }
                }
            }
        }
        
        for(int i=0; i<temp.size(); i++) {
            System.out.println(temp.get(i));
        }
        
        return answer;
    }
}

 

JavaScript

function solution(board, moves) {
    var answer = 0;
    var len = board.length;
    var temp = [];
    
    for(var move in moves) {
        var m = moves[move] - 1;
        for(var i=0; i<len; i++) {
            if(board[i][m] != 0) {
                if(temp.length != 0 && board[i][m] == temp[temp.length-1]) {
                    temp.pop();
                    answer += 2;
                } else {
                    temp.push(board[i][m]);
                }
                board[i][m] = 0;
                break;
            }
        }
    }
    
    
    return answer;
}
반응형