[프로그래머스] k의 개수
카테고리 : 컴퓨터 공학
태그: programmers · Code Refactoring · 참고 할 만한 다른 사람의 코드 · 코딩 기초 트레이닝 · 프로그래머스 · 코딩테스트 연습 · JavaScript · k의 개수 · js k의 개수
태그: programmers · Code Refactoring · 참고 할 만한 다른 사람의 코드 · 코딩 기초 트레이닝 · 프로그래머스 · 코딩테스트 연습 · JavaScript · k의 개수 · js k의 개수
문제 설명
1부터 13까지의 수에서, 1은 1, 10, 11, 12, 13 이렇게 총 6번 등장합니다. 정수 i
, j
, k
가 매개변수로 주어질 때, i
부터 j
까지 k
가 몇 번 등장하는지 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤
i
<j
≤ 100,000 - 0 ≤
k
≤ 9
입출력 예
i | j | k | result |
---|---|---|---|
1 | 13 | 1 | 6 |
10 | 50 | 5 | 5 |
3 | 10 | 2 | 0 |
입출력 예 설명
입출력 예 #1
- 본문과 동일합니다.
입출력 예 #2
- 10부터 50까지 5는 15, 25, 35, 45, 50 총 5번 등장합니다. 따라서 5를 return 합니다.
입출력 예 #3
- 3부터 10까지 2는 한 번도 등장하지 않으므로 0을 return 합니다.
나의 풀이
function solution(i, j, k) {
var answer = "";
for (i; i <= j; i++) {
answer += i;
}
return answer.split(k).length - 1;
}
나의 두번째 풀이(Code Refactoring)
function solution(i, j, k) {
let result = "";
for (i; i <= j; i++) {
result += i;
}
return result.split("").filter((v) => v.includes(k)).length;
}
// 1. result에 i부터 j사이의 값을 문자열로 저장
// 2. i~j 값중에 k를 포함하는 문자의 갯수를 리턴
참고 할 만한 다른 사람의 코드
function solution(i, j, k) {
let str = Array(j - i + 1)
.fill(i)
.map((v, i) => v + i)
.join("");
return Array.from(str).filter((t) => +t === k).length;
}