문제
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
배열에서 연속된 부분이 있으면 하나로 압축한 배열로 리턴해야하는 문제이다.
1. 이전에 기록되었던 값에 대한 변수를 선언한다.
0~9까지의수가 나올 수 있으므로, -1로 초기화 했다.
2. 이전에 기록되었던 값과 다르면, 동적 배열에 넣고 이전 값을 갱신한다.
3. 동적배열 크기만큼, int 배열을 만든다.
4. 값을 복사하고 리턴한다.
소스코드
import java.util.ArrayList;
public class Solution {
public int[] solution(int[] arr) {
int before = -1;
ArrayList<Integer> list = new ArrayList<>();
for (int v : arr) {
if (before != v) {
list.add(v);
before = v;
}
}
int[] answer = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
answer[i] = list.get(i);
}
return answer;
}
}
실행결과

'Problem Solving > Programmers' 카테고리의 다른 글
| [Programmers] 한 번만 등장한 문자 - Java (0) | 2025.07.22 |
|---|---|
| [Programmers] 지게차와 크레인 - Java (0) | 2025.07.21 |
| [Programmers] 공원 산책 - Java (0) | 2025.07.19 |
| [Programmers] PCCP 기출문제 3번 - 아날로그 시계 - Java (0) | 2025.07.18 |
| [Programmers] PCCE 기출문제 10번 - 공원 - Java (0) | 2025.07.17 |