https://school.programmers.co.kr/learn/courses/30/lessons/131704
import java.util.*;
class Solution {
public int solution(int[] order) {
int answer = 0;
Stack<Integer> s= new Stack<>();
int idx=0;
int temp=order[idx];
for(int i=1; i<=order.length; i++){
if(i != temp){
if(s.size() >0 && s.peek() == temp){
s.pop();
answer++;
temp=order[++idx];
i--;
continue;
}
s.push(i);
}else{
answer++;
temp=order[++idx];
}
}
while(!s.isEmpty()){
if(s.peek() == temp){
answer++;
s.pop();
if(idx+1>=order.length){
break;
}
temp=order[++idx];
}else{
break;
}
}
return answer;
}
}
'코테풀이' 카테고리의 다른 글
[프로그래머스] 롤케이크 자르기 java풀이 (LEVEL2) (0) | 2023.05.20 |
---|---|
[프로그래머스] n^2 배열 자르기 java 풀이(LEVEL2) (0) | 2023.05.20 |
[프로그래머스] 숫자 변환하기 java (LEVEL2) (0) | 2023.05.11 |
[프로그래머스] 뒤에 있는 큰 수 찾기 java (LEVEL2) (0) | 2023.05.11 |
[프로그래머스] 연속 부분 수열 합의 개수 java (LEVEL2) (0) | 2023.05.11 |