반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/64061
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
입출력
이 문제는 2019 카카오 겨울 개발자 인터십 문제로 프로그래머스 1단계 문제이다.
딱 봐도 stack 을 이용하여 문제를 푸는 기본 문제라고 볼 수 있는데 문제의 조건만 잘 파악하면 굉장히 쉽게 문제를 해결할 수 있는 문제이다.
더 좋은 아이디어나 방법이 있으면 공유바란다.
import java.util.*;
class Solution {
public static void main(String[] args) {
int[][] board = {
{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[] moves = {1,5,3,5,1,2,1,4};
System.out.println(solution(board, moves));
}
static public int solution(int[][] board, int[] moves) {
int answer = 0;
Stack<Integer> stack = new Stack<>();
for (int move : moves) {
for (int j = 0; j < board.length; j++) {
if (board[j][move - 1] != 0) {
if (!stack.isEmpty() && stack.peek() == board[j][move - 1]) {
stack.pop();
answer += 2;
} else {
stack.add(board[j][move - 1]);
}
board[j][move - 1] = 0;
break;
}
}
}
return answer;
}
}
느낀점
해당 문제 같은 경우는 stack을 활용하는 기본문제 수준이라고 생각이 된다. 어렵지 않게 해결이 가능한 문제였다.
반응형
'코딩테스트(Java) > 프로그래머스 1단계' 카테고리의 다른 글
[프로그래머스] 개인정보 수집 유효기간 - JAVA (0) | 2024.02.27 |
---|---|
[프로그래머스] 달리기 경주 - JAVA (0) | 2024.02.27 |
[프로그래머스] 공원 산책 - JAVA (1) | 2024.02.27 |
[프로그래머스] 가장 많이 받은 선물 - JAVA (2) | 2024.02.27 |