이번 글은 다음 글들을 참고하여 작성하였습니다.
[프로그래머스] 폰켓몬 - JavaScript
2021-04-08
velog.io
[Javascript] 폰켓몬
문제설명 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고
kong-dev.tistory.com
[Javascript] 폰켓몬 - level 1
https://programmers.co.kr/learn/courses/30/lessons/1845 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있
l4279625.tistory.com
[프로그래머스] level1. 폰켓몬 (javascript)
문제 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습
zzemal.tistory.com
이번 문제에 대한 자세한 사항은 다음 링크를 참고하길 바랍니다.
내가 작성한 해답으로는 몇몇 테스트 케이스는 통과했으나 시간 초과가 뜨는 테스트 케이스도 있어 문제 풀이에 실패하고 말았다. 다른 사람들의 코드를 참고한 결과 주어진 숫자 배열에서 중복값을 제거하여 해당 배열의 길이와 주어진 숫자 배열의 길이에서 2를 나눈 값을 비교하는 것이 핵심이라는 것을 알게 되었다.
Solutions
Solution 1.
/* My Solution */ function solution(nums) { let answer = []; const n = nums.length / 2; for (let i = 0; i < nums.length; i++) { while (answer.length < n) { if (!answer.includes(nums[i])) { answer.push(nums[i]); } else if (answer.includes(nums[i])) { i++; } } } return answer.filter((ans) => ans !== undefined).length; }
Solution 2.
function solution(nums) { const answer = []; const n = nums.length / 2; for (const num of nums) { if (answer.length < n) { if (!answer.includes(num)) answer.push(num); } } return answer.length; }
Solution 3.
function solution(nums) { const answer = []; const n = nums.length / 2; nums.map((num) => answer.length < n && !answer.includes(num) ? answer.push(num) : num ); return answer.length; }
Solution 4.
function solution(nums) { const answer = new Set(nums), n = nums.length / 2; return answer.size > n ? n : answer.size; }
Solution 5.
function solution(nums) { const n = nums.length / 2; const phonekemons = nums.filter((v, i, t) => t.indexOf(v) === i); return phonekemons.length < n ? phonekemons.length : n; }
Solution 6.
function solution(nums) { const phonekemons = {}; const n = nums.length / 2; for (const num of nums) { if (!phonekemons[num]) { phonekemons[num] = 1; } else { phonekemons[num]++; } } return Object.keys(phonekemons).length > n ? n : Object.keys(phonekemons).length; }
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
[Programmers] level 1: 3진법 뒤집기 by JavaScript (0) | 2022.07.07 |
---|---|
[Programmers] level 1: 약수의 개수와 덧셈 by JavaScript (0) | 2022.07.06 |
[Programmers] level 1: 체육복 by JavaScript (0) | 2022.07.06 |
[Programmers] level 1: 모의고사 by JavaScript (0) | 2022.07.04 |
[Programmers] level 1: K번째 수 by JavaScript (0) | 2022.07.04 |
댓글