티스토리 뷰
프로그래머스 12906번 - 같은 숫자는 싫어
요구사항
1. 배열에서 연속적으로 나타나는 숫자는 하나만 남기고 모두 제거하여 반환한다.
2. 단, 기존 배열의 순서는 그대로 따른다.
요구사항 분석 및 풀이과정
1. 연속적으로 나타나는 것을 제거하는 건 전형적인 Stack을 사용하는 문제 유형이다.
2. 배열을 순차적으로 순회한다.
3. 만약 Stack이 비어있지 않고 가장 최근에 삽입한(peek) 원소가 현재 원소와 같다면 연속적으로 등장하였다는 뜻이므로 삽입하지 않고 넘어간다.
4. 위의 상황에 해당하지 않으면 Stack에 삽입한다.
소스코드 작성
import java.util.Stack;
class Solution {
public int[] solution(int[] arr) {
Stack<Integer> result = new Stack<>();
for(int v : arr) {
if (!result.isEmpty() && result.peek() == v) {
continue;
}
result.push(v);
}
return result.stream().mapToInt(Integer::intValue).toArray();
}
}
결과
소스코드 깃허브 주소
'코딩테스트 > 알고리즘' 카테고리의 다른 글
[알고리즘]프로그래머스 70128번 - 내적 (0) | 2022.01.04 |
---|---|
[알고리즘]프로그래머스 12912번 - 두 정수 사이의 합 (0) | 2022.01.04 |
[알고리즘]프로그래머스 12944번 - 평균 구하기 (0) | 2022.01.04 |
[알고리즘]프로그래머스 86501번 - 없는 숫자 더하기 (0) | 2022.01.04 |
[알고리즘]프로그래머스 12916번 - 문자열 내 p와 y의 개수 (0) | 2022.01.04 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 코딩인터뷰
- 구현
- dfs
- dsu
- 해쉬
- 비트연산
- BFS
- TDD
- set
- 알고리즘
- 오늘의집
- 코드 스니펫
- dp
- 스택
- Java
- 연결리스트
- 탐욕법
- 카카오
- Uber
- kotlin
- sql
- 문자열
- 스트림
- 프로그래머스
- 우선순위큐
- k8s
- 회고
- 쓰레드
- 정렬
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함