-
[프로그래머스] 코테 (k의 개수)헬리'Daily/꾸준한 알고리즘 2023. 7. 27. 22:10728x90
주어진 문제
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주어진 solution.js
function solution(i, j, k) { var answer = 0; return answer; }
문자를 쭉 연결해서 1이라는 숫자를 세어줄 것이다!
풀이
1. 빈 문자열을 하나 선언해 주었다.
let s = '';
2. i부터 시작하고 j보다 같거나 작을때까지 1씩 더해줄 것이며, s에 i값을 누적해 줄 것이다.
return s 를 해줌으로서, 전체 s가 누적된 값을 반환할 수 있도록 구현해 보았다.
for (i; i<=j; i++){ s += i } return s;
여기까지 한것을 브라우저의 개발자도구로 실행해보자!
문제에 나온 1부터 13까지 1의 개수를 구하는 작업을 대입해 보았다.
위에까지 진행된 s를 구한 값은 위와 같다.
저기서 이제 1의 갯수를 세기 위해 split('1')로 나누어주었다.
1을 기준으로 앞뒤로 나누어졌기 때문에
다음과 같은 값이 나오고 전체는 원래 구해져야 했던 갯수보다 1개가 많다.
그러므로, .length를 적용한 뒤 그 수에서 1을 빼주었다.
그럼 최종 로직은 다음과 같다.
function solution(i, j, k) { let s = ''; for(i; i<=j; i++ ){ s +=i } return (s.split(k).length -1); }
성공~
728x90'헬리'Daily > 꾸준한 알고리즘' 카테고리의 다른 글
[프로그래머스] 코테 (배열 원소의 길이) (0) 2023.08.04 [프로그래머스] 코테 (편지) (0) 2023.07.28 [프로그래머스] 코테 (팩토리얼) (0) 2023.07.22 알고리즘문제 5 (0) 2023.05.29 알고리즘문제 4 (0) 2023.05.29