-
[프로그래머스] 같은 숫자는 싫어 - Java알고리즘 문제 풀이 2024. 5. 6. 18:08
문제 - 같은 숫자는 싫어
https://school.programmers.co.kr/learn/courses/30/lessons/12906
문제설명
제한사항
입출력 예
arr answer [1,1,3,3,0,1,1] [1,3,0,1] [4,4,4,3,3] [4,3]
접근 방법
- 문제에서 배열 arr에 연속적으로 나타나는 숫잔느 하나만 남기고 전부 제거 하라고 있다
- 이 말은 즉, 중복되는 숫자는 한개만 남긴다는 뜻이다
- 여기에서 자료구조를 생각 했을때 쉽게 생각하면 중복이니까 Set를 생각 할수 있는데 하지만 Set 은 순서가 없는 자료구조이다 그래서 이 문제에서는 쓰이면 안된다
- 그럼 stack 과 queue를 생각할 수 있다
- 비교적 이 문제는 간단한 문제라서 stack 이나 queue로 둘 중에 하나 선택해서 구현 하면 될 것 같다
코드 작성
import java.util.*; public class Solution { public int[] solution(int []arr) { Stack<Integer> stack = new Stack<>(); stack.push(arr[0]); for (int i = 1; i < arr.length; i++) { if (stack.peek() != arr[i]) { stack.push(arr[i]); } } return stack.stream().mapToInt(value -> value).toArray(); } }
문제 풀고 느낀점
- 느낀점은 이 문제는 비교적 쉬운 문제이다
- 어떤 자료구조를 선택해야할지만 잘 생각하고 고민 하면 될 것 같다'알고리즘 문제 풀이' 카테고리의 다른 글
[프로그래머스] 기능개발 - Java (0) 2024.05.08 [프로그래머스] 스킬트리 - Java (0) 2024.05.08 [백준] 9372 상근이의 여행 - Java (0) 2024.05.03 [프로그래머스] 예상 대진표 -Java (0) 2024.05.02 [백준] 1991 트리 순회 - Java (1) 2024.05.01