저장을 습관화
프로그래머스 LV.1 같은 숫자는 싫어 본문
프로그래머스 LV.1 같은 숫자는 싫어
https://school.programmers.co.kr/learn/courses/30/lessons/12906
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 명
같은 숫자는 싫어
2. 문제 설명
배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,
arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.
arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.
배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.
3. 제한 사항
배열 arr의 크기 : 1,000,000 이하의 자연수
배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수
4. 예시
arr | answer |
[1,1,3,3,0,1,1] | [1,3,0,1] |
[4,4,4,3,3] | [4, 3] |
5. 기본 제공 코드
function solution(arr)
{
var answer = [];
// [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
console.log('Hello Javascript')
return answer;
}
6. 제출한 내 답
const solution = (arr) => {
return arr.filter((v, i) => {
return v === arr[i - 1] ? false : true;
});
};
정확성 테스트
테스트 1 〉 통과 (0.05ms, 33.6MB)
테스트 2 〉 통과 (0.05ms, 33.5MB)
테스트 3 〉 통과 (0.05ms, 33.4MB)
테스트 4 〉 통과 (0.05ms, 33.5MB)
테스트 5 〉 통과 (0.05ms, 33.5MB)
테스트 6 〉 통과 (0.05ms, 33.4MB)
테스트 7 〉 통과 (0.05ms, 33.4MB)
테스트 8 〉 통과 (0.06ms, 33.4MB)
테스트 9 〉 통과 (0.05ms, 33.5MB)
테스트 10 〉 통과 (0.05ms, 33.4MB)
테스트 11 〉 통과 (0.05ms, 33.4MB)
테스트 12 〉 통과 (0.05ms, 33.4MB)
테스트 13 〉 통과 (0.07ms, 33.5MB)
테스트 14 〉 통과 (0.05ms, 33.5MB)
테스트 15 〉 통과 (0.05ms, 33.6MB)
테스트 16 〉 통과 (0.05ms, 33.5MB)
테스트 17 〉 통과 (0.04ms, 33.5MB)
효율성 테스트
테스트 1 〉 통과 (27.00ms, 83.1MB)
테스트 2 〉 통과 (23.60ms, 83.3MB)
테스트 3 〉 통과 (24.19ms, 83.4MB)
테스트 4 〉 통과 (27.29ms, 83.2MB)
채점 결과
정확성: 71.9
효율성: 28.1
합계: 100.0 / 100.0
6-2. VSC에 작성한 내용
const solution = (arr) => {
return arr.filter((v, i) => {
return v === arr[i - 1] ? false : true;
});
};
// 테스트
console.log(solution([1, 1, 3, 3, 0, 1, 1]));
console.log(solution([4, 4, 4, 3, 3]));
7. 특이사항
틀렸던 방법
const solution = (arr) => {
return arr.filter((v, i) => {
return v === arr[i - 1] ? false : v;
});
};
arr의 요소 중 하나가 0일때 v(현재 요소)를 반환하도록 하면
0, 즉 falsy한 값으로 인식되어 filter가 drop 시켜 버렸다
8. 다른 사람이 작성한 답
8-1. 가장 많이 쓰인 풀이법, 좋아요를 가장 많이 받은 풀이법
function solution(arr)
{
return arr.filter((val,index) => val != arr[index+1]);
}
배열의 다음 수와 비교를 했네
8-2. for문, 흐름은 나와 같음
function solution(arr) {
var answer = [arr[0]];
for (let i=1; i<arr.length; i++) {
if (answer[answer.length - 1] !== arr[i]) {
answer.push(arr[i]);
}
}
return answer;
}
'코딩 테스트 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 LV.0 외계어 사전 (0) | 2023.10.03 |
---|---|
프로그래머스 LV.2 JadenCase 문자열 만들기 (0) | 2023.10.02 |
프로그래머스 LV.2 올바른 괄호 (0) | 2023.10.02 |
프로그래머스 LV.1 최대공약수와 최소공배수 (0) | 2023.10.02 |
프로그래머스 LV.2 최솟값 만들기 (0) | 2023.10.02 |