-
728x90
문제설명
https://school.programmers.co.kr/learn/courses/30/lessons/147355
제한사항
- 1 ≤ p의 길이 ≤ 18
- p의 길이 ≤ t의 길이 ≤ 10,000
- t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다.
입출력 예
t p result "3141592" "271" 2 "500220839878" "7" 8 "10203" "15" 3 내 풀이
function solution(t, p) { let num = p.length; let result = 0; for(let i = 0; i <= t.length - num; i++) { if(t.substr(i, num) <= p) { result++; } } return result; }
여기서 substr('indexStart', length) 함수를 사용했는데 시작위치를 지정해서 해당 길이 만큼 문자열을 자를 수 있다.
(길이 생략 시 끝까지 자름)
문자열 t를 substr 함수를 사용하여 i부터 p길이만큼 자르고 해당 문자열을 p보다 작거나 같은지 비교 후 result를 증가시킨다.
'코딩테스트, 알고리즘' 카테고리의 다른 글
[프로그래머스] 이진 변환 반복하기 (JS) (0) 2023.08.26 [프로그래머스] 이상한 문자 만들기 (JS) (0) 2023.08.23 [프로그래머스] 문자열 내 마음대로 정렬하기 (JS) (0) 2023.08.19 [프로그래머스] 삼총사 (JS) (0) 2023.08.18 [프로그래머스] 중복된 문자 제거 (JS) (0) 2023.03.26 댓글