[js알고리즘]10부제
Updated:
문제
첫번째 함수 인자의 값과 나머지 배열의 값의 “끝의 숫자가” 동일하면 카운트를 늘리는 문제
문제해설
주어진 숫자(첫번째 인자)와 두번째 숫자들의 일의 자리 숫자를 보고 동일하면 카운트 숫자를 늘리는 문제이므로
- 첫번째 인자를 뺀 나머지의 숫자들을 배열로 정렬하고
- 해당 카운트 갯수를 저장하기 위한 변수를 만들어 주었습니다.
- 각 배열 요소의 조건을 판별하기 위해서
filter
매서드를 이용하였으며, - “나머지 1의 자리 수”를 구하기 위해서 해당 인자의 값을 10으로 나누어 일의 자리를 찾고
- 계산된 일의 자리 숫자와 첫번째 인자의 값이 동일하다면 카운트 갯수를 늘리도록 하였습니다.
해결방법
case1
const soltuion = (num, a, b, c, d, e, f, g) => {
const arr = [a, b, c, d, e, f, g];
let answer = 0;
arr.filter(el => (el % 10 === num ? answer++ : null));
return answer;
};
soltuion(3, 25, 23, 11, 47, 53, 17, 33);
case2
const soltuion = (num, a, b, c, d, e, f, g) => {
const arr = [a, b, c, d, e, f, g];
let answer = 0;
for (let x of arr) {
console.log(x % 10, 'half');
if (x % 10 === num) answer++;
}
return answer;
};
soltuion(3, 25, 23, 11, 47, 53, 17, 33);
배운점
일의 자리를 구하는 공식을 10으로 나누면 되는데 해당 공식을 처음에는 생각하지 못하고 각 요소를 순회할 때 끝의 숫자를 가져오려고 해서 시간적인 딜레이가 발생하였습니다. 1의 자리를 구하는 해당 공식을 잊지 않기로 하였습니다.