문제
https://school.programmers.co.kr/learn/courses/30/lessons/181859
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
코드(Java)
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int[] arr) {
List<Integer> stk = new ArrayList<>();
for (int num : arr) {
if (!stk.isEmpty() && stk.get(stk.size() - 1) == num) {
stk.remove(stk.size() - 1);
} else {
stk.add(num);
}
}
if (stk.isEmpty()) {
return new int[]{-1};
}
// Java 8 이상에서는 stream으로 변환 가능
return stk.stream().mapToInt(Integer::intValue).toArray();
}
}
코드(Python)
def solution(arr):
stk = []
for num in arr:
if stk and stk[-1] == num:
stk.pop()
else:
stk.append(num)
return stk if stk else [-1]
728x90