https://programmers.co.kr/learn/courses/30/lessons/64061
public class Programmer {
public static void main(String[] args) {
int[][] input = {{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}};
int[] move = {1, 5, 3, 5, 1, 2, 1, 4};
System.out.print(solution(input, move));
}
private static int solution(int[][] board, int[] moves) {
List<Integer> item = new ArrayList<>();
int squareSize = board.length;
int result = 0;
for (int col : moves) {
for (int j = 0; j < squareSize; j++) {
if (board[j][col - 1] != 0) {
item.add(board[j][col - 1]);
board[j][col - 1] = 0;
result += getSameItemCount(item) * 2;
break;
}
}
}
return result;
}
private static int getSameItemCount(List<Integer> item) {
int position = -1;
for (int i = 0; i < item.size() - 1; i++) {
if (item.get(i).equals(item.get(i + 1))) {
position = i;
}
}
if (position == -1) {
return 0;
} else {
item.remove(position);
item.remove(position);
return 1;
}
}
}
오랜만에 재미로..
'Algorithm' 카테고리의 다른 글
2020 Dev-Matching: 웹 백엔드 개발자 후기 (1) | 2020.04.18 |
---|---|
알고리즘 - 주식 가격 (스택/큐) (0) | 2020.04.18 |
최단 경로 그리디로 풀기 (0) | 2020.02.04 |
해당 요일 맞추기 (0) | 2020.02.03 |
배열 회전하기 (0) | 2020.02.03 |