View
![](https://blog.kakaocdn.net/dn/BuDRP/btq3qfuLv5g/z2C2HegPQ3jf6TJy5LapeK/img.png)
😃 || 정리
1. 처음에는 '중복되는' 숫자들을 제거한 배열을 리턴해주는 줄 알고 Set을 써서 구현했었다. 알고보니 '중복되는'이 아닌 ' 연속되는' 숫자임을 깨닫고 다시 풀이 시작
2. 그렇다면 연속되는 숫자는 어떻게 구분해줄까를 다시 고민했다.
일단 연속되는 숫자 중 가장 먼저 나타나는 숫자를 기준으로 배열에서 값을 가져온 후 기준값과 배열에서 가져온 값이 같지 않을 때, 배열에서 가져온 값을 return 배열에 넣어주기로 했다.
그런데 return 배열의 크기가 정해지지 않았기 때문에 나는 ArrayList를 사용하기로 했다.
그 후 다시 ArrayList를 int배열로 바꿔서 return 했다.
😃 || 풀이 방법
import java.util.*; public class Solution { public int[] solution(int []arr) { int[] answer = {}; ArrayList<Integer> arrList = new ArrayList<Integer>(); int arrLen = arr.length; int identifier = arr[0]; arrList.add(arr[0]); for(int i=1; i< arrLen; i++){ if( identifier != arr[i]){ identifier = arr[i]; arrList.add(arr[i]); } } answer = new int[arrList.size()]; for(int i=0; i< arrList.size(); i++){ answer[i] = (int)arrList.get(i); } return answer; } }
'Algorithm' 카테고리의 다른 글
프로그래머스 :: 영어 끝말잇기 (Java) 알고리즘 풀이 (0) | 2021.05.17 |
---|---|
LeetCode :: Valid Anagram (Java) (0) | 2021.04.30 |
프로그래머스 :: 이상한 문자 만들기 (Java) 알고리즘 /split (String regex, int limit) 정리 (0) | 2021.04.24 |
LeetCode :: Happy Number (Java) (0) | 2021.03.06 |
프로그래머스 :: 카펫 (Java) 알고리즘 (0) | 2021.02.28 |
reply