[프로그래머스/JAVA] 같은 숫자는 싫어
2025. 3. 2. 23:49ㆍ코딩테스트/프로그래머스
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12906
문제 정리
연속적으로 나타나는 숫자는 하나만 남기고 남은 숫자는 출력하지 않음. 단, hashSet처럼 중복이 아예 없는 게 아니고 <연속적인 같은 수> 가 없는 것임
왜 hashSet을 굳이 강조했냐면!!
내가실수를했기때문이다 하하...
그리고 해당 문제는 스택/큐라고 명시가 되어있어서
이번 문제는 stack으로 풀어보았다!!
작성 코드
import java.util.*;
public class Main {
public int[] solution(int []arr) {
Stack<Integer> stArr = new Stack<>();
for (int i = 0; i < arr.length; i++) {
//스택이 비어있으면 무조건 arr[i]
if(stArr.isEmpty()) {
stArr.push(arr[i]);
//스택이 지금 바라보고 있는 마지막이 arr[i]와 다르다면
} else if(!(stArr.peek().equals(arr[i]))) {
//추가
stArr.push(arr[i]);
}
}
int[] answer = new int[stArr.size()];
//스택은 후입선출이니까 마지막부터
for (int i = answer.length - 1; i >= 0; i--) {
answer[i] = stArr.peek();
//값 추가 후 pop 연산으로 현재 값(peek)를 다음으로 넘김
stArr.pop();
}
return answer;
}
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/JAVA] 로또의 최고 순위와 최저 순위 (1) | 2025.03.03 |
---|---|
[프로그래머스/JAVA] 지폐 접기 (0) | 2025.03.02 |
[프로그래머스/JAVA] 없는 숫자 더하기 (1) | 2025.03.02 |