1. 문제 설명
2. 풀이
function solution(arr, k) {
var answer = []
for(let i=0;i<arr.length;i++){
if(answer.length === k) return answer;
if(answer.indexOf(arr[i]) === -1) answer.push(arr[i]);
}
while(answer.length < k){
answer.push(-1)
}
return answer.slice(0,k);
}
- 처음엔 for문 안에서 arr[i] !== arr[i+1]이면 answer.push(arr[i]) 이런식으로 했었는데 테스트에서는 통과했지만 제출하니까 다 실패가 떴다,, 결국 구글링 엔딩,, ㅠㅠ
3. 다른 사람 풀이
function solution(arr, k) {
const set = new Set(arr);
return set.size < k ? [...set, ...Array(k - set.size).fill(-1)] : [...set].slice(0, k);
}
- 오 set을 사용해서 푸니까 훨씬 간결해지네..!
- map을 자주 쓰다보니 set을 기억에서 잊어버리고 있었나보다,,
'JAVASCRIPT > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 0단계 - 그림확대 (0) | 2024.01.14 |
---|---|
[프로그래머스] 0단계 - 배열의 길이를 2의 거듭제곱으로 만들기 (0) | 2024.01.12 |
[프로그래머스] 0단계 - 빈 배열에 추가, 삭제하기 (0) | 2024.01.09 |
[프로그래머스] 0단계 - 문자열이 몇 번 등장하는지 세기 (0) | 2024.01.07 |
[프로그래머스] 0단계 - 조건에 맞게 수열 변환하기 2 (0) | 2024.01.05 |