정수가 담긴 배열 array
와 정수 n
이 매개변수로 주어질 때, array
에 n
이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.
array
의 길이 ≤ 100array
의 원소 ≤ 1,000n
≤ 1,000array | n | result |
---|---|---|
[1, 1, 2, 3, 4, 5] | 1 | 2 |
[0, 2, 3, 4] | 1 | 0 |
입출력 예 #1
입출력 예 #2
const solution = (array, n) => array.filter(x=>x===n).length;
/* 내가 처음 작성한 코드이다. filter를 이용해서 n과 같은 값들을 리턴하도록 만들어준 후 length로
개수를 구해주었다. */
const solution = (array, n) => {
let arr = 0;
for(i=0; i<array.length; i+=1){
if(array[i]===n){
arr++;
}
}
return arr;
}
/* for문을 써서 코드를 만들어보았다. array의 인덱스로 접근하여 n과 같다면 arr에 1을 추가하도록
만들어주었다. 확실히 SOLUTION1에서 작성한 filter메서드를 이용한게 간결하고 가독성도 좋은거같다. */
const solution = (array, n) => {
let arr = 0;
for(let i of array){
if(i===n){
arr++;
}
}
return arr;
}
/* 이번엔 for of를 사용하여 작성한 코드이다. SOLUTION2의 for문보다 for of를 써서 조금 더
간결하게 작성해보았다. */
const solution = (array, n) => {
let arr = 0;
array.map(x=>{
if(x===n){
return arr+=1;
}
})
return arr;
}
/* map을 활용하여 작성한 코드이다. map의 콜백 함수에 n과 같다면 arr에 1씩 증가시키도록
작성해 주었다. */
const solution = (array, n) => {
let arr = 0;
array.map(x=>x===n && arr++)
return arr;
}
/* 위의 코드에서 if문을 없애고 &&연산자를 통해서 작성해보았다. */
const solution = (array, n) => {
return array.reduce((add, x) => {
if(x===n){
add++
}
return add;
},0);
}
/* 이번엔 reduce를 통해서 작성한 코드이다. SOLUTION4의 경우 변수를 하나더 만들어서
조건에 만족하면 1씩 추가해주는 코드를 작성해주었다면 reduce를 통해서 변수를 만들지 않고
작성할 수 있다. */
const solution = (array, n) => {
return array.reduce((add, x) => {
x===n && add++
return add;
},0);
}
/* 위의 코드에서 if문을 없애고 &&연산자를 통해서 작성해보았다. */
출처 : 프로그래머스 스쿨 | 코딩테스트 연습
https://school.programmers.co.kr/learn/courses/30/lessons/120583