Java/Programmers
[Lv.1]같은 숫자는 싫어
GLOWWW
2023. 1. 21. 15:51
package Lv_1;
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class 같은숫자는싫어 {
public static List<Integer> solution(int[] arr) {
List<Integer> answer = new ArrayList<>();
Stack<Integer> tmp = new Stack<>();
tmp.push(arr[0]);
for (int i = 1; i < arr.length; i++) {
if (tmp.isEmpty()) {
tmp.push(arr[i]);
}
else if (arr[i] == tmp.get(0)) {
tmp.push(arr[i]);
} else {
answer.add(tmp.pop());
tmp.clear();
tmp.push(arr[i]);
}
}
answer.add(tmp.pop());
return answer;
}
public static void main(String[] args) {
int[] arr = new int[]{1, 1, 3, 3, 0, 1, 1};
List<Integer> result = solution(arr);
System.out.println(result);
}
}
그런데 이렇게 풀고나서.. 다른 사람의 풀이를 보고나니 훨씬 쉬운방법이 있었다.
arr배열에 들어가는 숫자는 0부터 9까지로, 그 안에 들어갈 수 없는 숫자를 변수로 잡아준 후 반복문을 수행하여 같지않은 숫자만 리스트에 담아주는것 이었다. 같지않으면 리스트에 담아주고 그 변수는 같지 않은 숫자로 변경시켜준다.