본문 바로가기
  • Jetpack 알아보기
프로그래머스 - JAVA/Level 1

[JAVA] 프로그래머스 Lv.1 : 크레인 인형뽑기 게임

by 새우버거♬ 2021. 6. 2.

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

 

예제:

 

board moves result
[[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

 

제한 조건:

  • board 배열은 2차원 배열로 크기는 "5 x 5" 이상 "30 x 30" 이하입니다.
  • board의 각 칸에는 0 이상 100 이하인 정수가 담겨있습니다.
    • 0은 빈 칸을 나타냅니다.
    • 1 ~ 100의 각 숫자는 각기 다른 인형의 모양을 의미하며 같은 숫자는 같은 모양의 인형을 나타냅니다.
  • moves 배열의 크기는 1 이상 1,000 이하입니다.
  • moves 배열 각 원소들의 값은 1 이상이며 board 배열의 가로 크기 이하인 자연수입니다.

Solution #1

import java.util.ArrayList;
import java.util.List;

class Solution {
    public int solution(int[][] board, int[] moves) {
        int answer = 0;
        int size = board.length;
        List<Integer> result = new ArrayList<>();

        for (int move : moves) {
            int index = move - 1;

            for (int j = 0; j < size; j++) {
                if (board[j][index] != 0) {
                    if (result.size() > 0 
                    		&& result.get(result.size() - 1) == board[j][index]) {
                        result.remove(result.size() - 1);
                        answer += 2;
                    } else {
                        result.add(board[j][index]);
                    }

                    board[j][index] = 0;
                    break;
                }
            }
        }

        return answer;
    }
}

 

Result #1

 


More Algorithm!

 

👇👇

 

github.com/ggujangi/ggu.programmers

 

ggujangi/ggu.programmers

프로그래머스 알고리즘, JAVA. Contribute to ggujangi/ggu.programmers development by creating an account on GitHub.

github.com

 

 

 

출처 : 프로그래머스