https://school.programmers.co.kr/learn/courses/30/lessons/64061
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
public int solution(int[][] board, int[] moves) {
int answer = 0;
Stack<Integer> stack = new Stack<>();
for (int num : moves) {
for (int j = 0; j < board.length; j++) {
if (board[j][num - 1] != 0) {
if (!stack.empty() && stack.peek() == board[j][num - 1]) {
stack.pop();
answer += 2;
} else {
stack.add(board[j][num - 1]);
}
board[j][num - 1] = 0;
break;
}
}
}
return answer;
}
📍포인트
1. 알맞은 숫자를 누적해가는 로직 필요.
2. 숫자를 빼면 0으로 처리.
3. 중복을 없애며 answer을 2씩 증가하는로직 필요.
📍삽질
1. stack 문제는 너무 오랜만이라 순수 구현으로 진행하다가 꺾었다.
2. peek, pop 메서드 정확히 알자.
3. stack이 empty일 경우 예외처리.
'코딩테스트' 카테고리의 다른 글
[코딩테스트(Java)] 프로그래머스 118666 성격 유형 검사하기 (0) | 2025.03.16 |
---|---|
[코딩테스트(Java)] 프로그래머스 67256 키패드 누르기 (0) | 2025.03.15 |
[코딩테스트(Java)] 프로그래머스 81301 숫자 문자열과 영단어 (0) | 2025.03.13 |
[코딩테스트(Java)] 프로그래머스 77484 로또의 최고 순위와 최저 순위 (0) | 2025.03.12 |
[코딩테스트(Java)] 프로그래머스 50048 베스트앨범 (0) | 2025.03.12 |