문제 :
내 풀이 :
function solution(t, p) {
let cnt = 0;
for(let i = 0; i <= t.length - p.length; i++) {
if(Number(t.slice(i, i + p.length)) <= Number(p)) {
cnt++;
}
}
return cnt;
}
주어진 함수 solution은 문자열 t에서 문자열 p와 같은 길이의 부분 문자열을 찾아, 해당 부분 문자열이 p보다 작거나 같은 경우의 수를 계산합니다. 이 코드의 동작 방식은 다음과 같다.
- cnt 변수는 조건을 만족하는 부분 문자열의 개수를 세기 위한 변수로 초기값은 0입니다.
- for 루프는 t 문자열에서 p 문자열의 길이만큼의 부분 문자열을 추출하기 위해 사용됩니다. 루프는 t의 처음부터 t.length - p.length 인덱스까지 반복합니다.
- slice 메서드를 사용하여 t에서 현재 인덱스 i부터 i + p.length까지의 부분 문자열을 추출합니다.
- 이 부분 문자열과 p를 숫자로 변환한 후, 비교하여 p보다 작거나 같은 경우 cnt를 1 증가시킵니다.
- 루프가 끝나면 cnt 값을 반환합니다.
예를 들어, t가 "12345"이고 p가 "34"인 경우:
- 첫 번째 부분 문자열은 "12"로, 34보다 작습니다. (카운트 +1)
- 두 번째 부분 문자열은 "23"로, 34보다 작습니다. (카운트 +1)
- 세 번째 부분 문자열은 "34"로, 34와 같습니다. (카운트 +1)
- 네 번째 부분 문자열은 "45"로, 34보다 큽니다. (카운트 변동 없음)
- 따라서, 결과는 3입니다.
'프로그래머스' 카테고리의 다른 글
[JavaScript] 가장 가까운 같은 글자 - 프로그래머스 (1) | 2024.09.12 |
---|---|
[JavaScript] 두 개 뽑아서 더하기 - 프로그래머스 (0) | 2024.09.10 |
[JavaScript] 최소직사각형 - 프로그래머스 (0) | 2024.08.27 |
[JavaScript] 삼총사 - 프로그래머스 (0) | 2024.08.20 |
[JavaScript] 이상한 문자 만들기 - 프로그래머스 (0) | 2024.08.19 |