반응형
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
** Javascript
function solution(arr)
{
return arr.filter((item, index) => arr[index] !== arr[index + 1]);
}
굳이 arr[index] 쓸 필요가 없었는데 왜 썼지..
function solution(arr)
{
return arr.filter((item, index) => item !== arr[index + 1]);
}
** Java
java는 효율성 테스트 때문에 추천 풀이 오픈...!
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
List<Integer> list = new ArrayList<Integer>();
int top = 10;
for (int i : arr) {
if (i != top) {
list.add(i);
top = i;
}
}
int[] answer = new int[list.size()];
for(int i=0; i<answer.length; i++) {
answer[i] = list.get(i).intValue();
}
return answer;
}
}
array 의 경우 사이즈를 정해서 선언해야 하므로 (고정된 수의 요소를 보유하는 컨테이너 객체임) 변동성이 있을 경우 List 나 ArrayList를 먼저 이용하는 것이 좋다.
index out of range 에러가 나는 것을 피하려면 swap 을 이용하면 된다.
** Python
def solution(arr):
answer = []
top = 10
for i in arr:
if i != top:
answer.append(i)
top = i
return answer
가장 많이 추천을 받은 풀이는 다음과 같다.
def solution(arr):
a = []
for i in arr:
if a[-1:] == [i]: continue
a.append(i)
return a
댓글 설명에 따르면
a[-1:]은 a값의 가장 뒤의 값을 list로 만든거라, list가 아닌 i랑 list인 a[-1:]값이랑 같은지 물어보면 당연히 다르다고 나오기 때문입니다.
반응형
'프로그래머스 > level 1' 카테고리의 다른 글
[프로그래머스] 2016년 (0) | 2021.09.30 |
---|---|
[프로그래머스] 가운데 글자 가져오기 (0) | 2021.09.30 |
[프로그래머스] 나누어 떨어지는 숫자 배열 (0) | 2021.09.23 |
[프로그래머스] 두 정수 사이의 합 (0) | 2021.09.23 |
[프로그래머스] 다트게임 (0) | 2021.09.15 |