문제

프로그래머스 문제링크
풀이 코드
import java.util.*;
class Solution
{
public int[] solution(int[] arr)
{
List<Integer> stk = new ArrayList<>();
int i = 0;
int k = -1;
while (i < arr.length)
{
if (stk.isEmpty())
{
stk.add(arr[i]);
k++;
} else if (stk.get(k) == arr[i])
{
stk.remove(k);
k--;
} else if (stk.get(k) != arr[i])
{
stk.add(arr[i]);
k++;
}
i++;
}
if (stk.size() == 0)
return new int[]{-1};
int[] answer = new int[stk.size()];
int j = 0;
for (int num : stk)
{
answer[j++] = num;
}
return answer;
}
}
리뷰
import java.util.*;
class Solution
{
public int[] solution(int[] arr)
{
List<Integer> stk = new ArrayList<>();
int i = 0;
int k = -1;
while (i < arr.length)
{
if (stk.isEmpty())
{
stk.add(arr[i]);
k++;
} else if (stk.get(k) == arr[i])
{
stk.remove(k);
k--;
} else if (stk.get(k) != arr[i])
{
stk.add(arr[i]);
k++;
}
i++;
}
if (stk.size() == 0)
return new int[]{-1};
int[] answer = new int[stk.size()];
int j = 0;
for (int num : stk)
{
answer[j++] = num;
}
return answer;
}
}
스택풀이
import java.util.*;
class Solution {
public Stack<Integer> solution(int[] arr)
{
Stack<Integer> stk = new Stack<>();
for (int i = 0; i < arr.length; i++)
{
if (stk.isEmpty())
{
stk.push(arr[i]);
} else if (stk.peek() == arr[i])
{
stk.pop();
} else
{
stk.push(arr[i]);
}
}
if (stk.isEmpty())
stk.push(-1);
return stk;
}
}