반응형
1. 출처
https://school.programmers.co.kr/learn/courses/30/lessons/12906
시작 시간 : 오전 12시 28분
종료 시간 : 오전 12시 41분
---------------------------------
13분 경과
2. 설계 및 코드
문제이해
연속적으로 나오는 같은 수를 제거해주는 문제이다. 모든 수 중 연속 수를 제거해주는 것이 아니다.
입출력
arr / answer
[1,1,3,3,0,1,1] | [1,3,0,1] |
[4,4,4,3,3] | [4,3] |
설계
1. 스택에 arr를 순차적으로 넣는다.
2. 넣기 전 스택 가장 위에 있는 요소와 같은지 확인한다. 이 때 같으면 넣지 않는다.
3. int[] 반환형이기 때문에 stack을 그대로 반환할 수 없다. 변환 과정을 거쳐야 한다. stack이기 때문에 answer 마지막 인덱스부터 채워줘야 한다.
코드
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
Stack<Integer> stack = new Stack<>();
for(int i=0;i<arr.length;i++){
if(stack.isEmpty()){
stack.push(arr[i]);
}
else{
if(stack.peek()==arr[i]) continue;
else stack.push(arr[i]);
}
}
int[] answer = new int[stack.size()];
for(int i=stack.size()-1;i>=0;i--){
answer[i] = stack.pop();
}
return answer;
}
}
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] lv2. 석유시추 [#BFS] (1) | 2023.12.07 |
---|---|
[프로그래머스] lv2. 구명보트 [#투포인터] (0) | 2023.11.29 |
[프로그래머스] lv3. 가장 먼 노드 [#그래프] (0) | 2023.10.23 |
[프로그래머스] lv3. 단어변환 [#BFS/DFS] (0) | 2023.10.23 |
[프로그래머스] lv2. 전화번호 목록 [#해시] + startsWith vs substring (1) | 2023.10.18 |