250x250
반응형
Notice
Recent Posts
Recent Comments
Link
종식당
[프로그래머스 lv.1] 같은 숫자는 싫어 본문
728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12906
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 문제 설명
입력으로 int형 배열 arr이 들어오고 이 배열에는 연속적으로 나타나는 숫자들이 있다. 이때 연속적으로 나타나는 숫자는 제거하고 남은 수들을 배열의 형태로 return 하면 되는 문제이다.
- 제출 코드
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
List <Integer> list = new ArrayList<>();
int value = -1;
for (int i = 0; i < arr.length; i++){
if(arr[i] != value){
list.add(arr[i]);
value = arr[i];
}
}
int [] result = new int[list.size()];
for(int i = 0; i < list.size(); i++){
result[i] = list.get(i);
}
return result;
}
}
- 코드 설명
먼저 int 배열 arr에서 숫자 하나씩 처리를 해줄건데 list에 넣어서 넣을 때마다 이전 값과 확인을 할 거다. 만약 이전에 넣은 값과 이번에 확인하는 값이 같으면 연속적인 숫자이니까 넘어가고 다를 때만 list에 추가해 준다. 그리고 반환할 때는 int형 배열로 반환해야 하니 이 로직또한 처리해 주었다.
먼저 정수를 담을 ArrayList를 만들어주었다. 이전 값을 저장해주기 위한 변수 value를 하나 만들어준다. 초기화할 때는 아무 의미 없는 값 -1로 해주었다.
그리고 arr배열을 for문을 통해 돌며 이 value값과 arr의 각 인덱스의 값과 같은지 확인해주었다. 값이 다르면 연속적인 숫자가 아니니까 list에 추가해 주었다. 이때는 list.add() 이런 형태로 사용할 수 있다. 그리고 value값을 바꿔준다.
list.size()를 통해 list의 크기를 구한 다음 이 크기 만큼의 int형 배열을 만들어준다.
그 후 int형 배열에 list에 있는 값을 list.get()을 통해 하나하나 가져와 저장한다.
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스 lv.3] 대장균의 크기에 따라 분류하기 1 (0) | 2024.10.29 |
---|---|
[프로그래머스 lv.1] 나누어 떨어지는 숫자 배열 (0) | 2024.10.16 |
[프로그래머스 lv.2] 짝지어 제거하기 (1) | 2024.07.16 |
[프로그래머스 lv.1] 2022 KAKAO BLIND RECRUITMENT 주차 요금 계산 (0) | 2024.04.05 |
[프로그래머스 lv.1] 2019 KAKAO BLIND RECRUITMENT 실패율 (1) | 2024.04.01 |