Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- HTML
- 자바스크립트 알고리즘 문제
- leetcode
- 리액트
- react
- 프론트엔드
- leetcode문제풀이
- 자바스크립트 알고리즘
- next13
- Next.js13
- 프로그래머스
- 알고리즘문제풀이
- JS
- til
- 자바스크립트 문제풀이
- NPM
- 리액트쿼리
- CSS
- 제로베이스
- JavaScript
- 타입스크립트
- lodash
- 자바스크립트
- 자바스크립트코딩테스트
- 자바스크립트 문제 풀이
- 자바스크립트 연결리스트
- stack문제
- 자바스크립트 문제
- Next
- Baekjoon
Archives
- Today
- Total
코드노트
프로그래머스 자바스크립트 크기가 작은 부분 문자열 본문
let t = "3141592";
let p = "271";
숫자로 이루어진 문자열 t와 p가 주어질 때,
t에서 p와 길이가 같은 부분문자열 중에서,
이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를
return하는 함수 solution을 완성하세요.
예를 들어, t="3141592"이고 p="271" 인 경우,
t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다.
이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다.
- 문제를 해석하면 쉬운 문제다. 간단하게 말하면!
- p의 길이는 3이다. t의 문자를 3개씩 순차적으로 자른다.
- 314, 141, 415, 159, 592
- 이 5가지 수를 p=272과 비교해서 작은 수를 count하면 끝나는 문제이다.
여기서 규칙 하나를 찾으면 된다. 우선 for문을 돌려야하기 때문에 몇번을 돌릴지 찾으려면
t의 길이 - p의 길이 + 1을 하면 된다.
- p의 길이인 3으로 t를 한번잘라내면 t의 길이인 7에서 3을 뺀 나머지 4가 된다.
- 순차적으로 하나씩 숫자를 만든다고 생각해보면 4번을 더 만들 수 있는 거다. 그럼 처음 만드는 수 1 그리고 4를 더하면 5가 된다.
let t = "3141592";
let p = "271";
function solution(t, p) {
var answer = 0;
let length = p.length;
let max = t.length + 1 - p.length;
let arr = [];
for (let i = 0; i < max; i++) {
arr.push(t.slice(i, length + i));
}
for (let i = 0; i < arr.length; i++) {
if (arr[i] <= p) answer++;
}
return answer;
}
console.log(solution(t, p)); // 2
- 우선 p의 길이를 담는다.
- 그리고 t.length - p.length + 1을 해준다. ( 이만큼 for문을 돌려서 만들 수 있는 수를 모두 만들어준다.)
- 첫번째 for문을 통해서 slice로 잘라내서 배열에 담아준다.
- 그리고 두번째 for문을 통해서 p의 수보다 낮은 수를 찾아서 count하면 끝!
오랜만에 코딩테스트를 해봤는데 잘 풀리는거 같다. 점점 레벨을 올리면서 하루? 이틀에 한문제씩은 꼭 풀어야겠다.
'Code note > 자바스크립트 알고리즘 문제풀이' 카테고리의 다른 글
BAEKJOON 2738번 행렬 덧셈 풀이 / javascript (0) | 2023.10.01 |
---|---|
JavaScript에서의 Map 객체 활용: 데이터 매핑과 효율적인 검색 (0) | 2023.09.14 |
Leetcode 66. Plus One / Easy / 자바스크립트 문제 풀이 (0) | 2022.10.13 |
프로그래머스 숫자의 표현 자바스크립트 문제 풀이 (0) | 2022.10.06 |
LeetCode 11. Container With Most Water 자바스크립트 문제 풀이 (1) | 2022.09.30 |