🔥 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
출처 : 프로그래머스
'프로그래머스 - JAVA > Level 1' 카테고리의 다른 글
[JAVA] 프로그래머스 Lv.1 : 비밀지도 (0) | 2021.06.03 |
---|---|
[JAVA] 프로그래머스 Lv.1 : 다트 게임 (0) | 2021.06.03 |
[JAVA] 프로그래머스 Lv.1 : 예산 (0) | 2021.06.02 |
[JAVA] 프로그래머스 Lv.1 : 로또의 최고 순위와 최저 순위 (0) | 2021.06.02 |
[JAVA] 프로그래머스 Lv.1 : 같은 숫자는 싫어 (0) | 2021.06.02 |