1. 폰켓몬 - lv.1
https://school.programmers.co.kr/learn/courses/30/lessons/1845
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
다양한 종류의 폰켓몬을 가지기 위해 배열의 중복을 제거한다.
중복을 제거한 배열의 길이가 N/2보다 큰 경우 가져갈 수 있는 폰켓몬의 최대 수는 N/2이다. 따라서 리턴 값은 배열의 길이와 N/2 중 더 작은 수가 된다.
function solution(nums) {
return Math.min(new Set(nums).size, nums.length/2);
}
2. 완주하지 못한 선수 - lv.1
https://school.programmers.co.kr/learn/courses/30/lessons/42576?language=javascript
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
객체를 사용했다.
우선 객체를 생성하고 participant를 순회하면서 객체에 키는 참가자 이름을, 값은 해당 이름의 수를 저장한다.
그 다음 completion을 순회하면서 객체에서 해당 이름의 수를 1 감소한다.
값이 1인 사람을 찾아 반환한다.
function solution(participant, completion) {
let count = {};
participant.forEach(x => {
count[x] = (count[x] || 0) + 1;
})
completion.forEach(x => {
count[x]--;
})
return Object.keys(count).find(name => count[name] > 0);
}
3. 전화번호 목록 - lv.2
https://school.programmers.co.kr/learn/courses/30/lessons/42577#
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
먼저 배열을 정렬한다. 이때 숫자 정렬이 아니라 문자열 기준으로 정렬한다.
배열을 순회하면서 배열의 다음 값이 현재 값으로 시작하면 false를 리턴하고 종료한다.
다른 번호의 접두어인 경우가 없으면 true를 리턴한다.
function solution(phone_book) {
phone_book.sort();
for(let i=0;i<phone_book.length-1;i++){
if(phone_book[i+1].startsWith(phone_book[i])) return false;
}
return true;
}
4. 의상 - lv.2
https://school.programmers.co.kr/learn/courses/30/lessons/42578?language=javascript
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
객체를 정의한다.
입력값을 순회하면서 의상 종류에 해당하는 객체의 값을 1씩 증가시킨다. 그럼 의상 종류별로 몇개를 가지고 있는지 정리된다.
조합 공식을 사용하여 결과값을 반환한다.
조합 구하는 공식: (n0 + 1) * (n1 + 1) * .... * (nm + 1) - 1
function solution(input) {
let clothes = {};
for(let i = 0; i<input.length; i++) {
clothes[input[i][1]] = clothes[input[i][1]] ? clothes[input[i][1]] + 1 : 1;
}
return Object.values(clothes).reduce((a, c) => (c + 1) * a, 1) - 1;
}
'코딩테스트 > 프로그래머스-JS' 카테고리의 다른 글
[프로그래머스/자바스크립트] 완전탐색 문제 풀이 모음 (0) | 2025.04.07 |
---|---|
[프로그래머스/자바스크립트] 정렬 문제 풀이 모음 (0) | 2025.03.04 |
[프로그래머스/자바스크립트] 스택/큐 문제 풀이 모음 (0) | 2025.03.04 |