[PS] Programmers/코딩테스트 연습/연습문제/크기가 작은 부분 문자열
2024. 2. 20. 14:35ㆍ✨ PS(ProblemSolving)
문제 설명
숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.
예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다.
해결 전략
- 주어진 t를 길이 p만큼의 문자열로 잘라 배열에 저장
- 저장한 배열 값들을 꺼내어 p와 크기 비교
- p보다 작은 것들이 있을 때 마다 정답에 1을 더해줌
코드
function solution(t, p) {
let answer = 0;
const findStrings = () => {
let strs = [];
for (i = 0; i < t.lengh - p.length; i++) {
strs.push(t.slice(i, i + p.length))
}
return strs;
}
const strs = findStrings();
strs.forEach(str => {
+str <= +p ? answer++ : answer
})
return answer
}
어려웠던 부분
- t를 원하는 길이로 잘라 저장하는 배열을 한번에 만들지 못했다.
- 반복문과 slice를 떠올렸으나 코드로 구상하지 못했는데, 컴퓨팅 사고능력을 코드로 실현시키는 훈련을 꾸준히 해야한다.
'✨ PS(ProblemSolving)' 카테고리의 다른 글
[PS] Programmers/코딩테스트 연습/연습문제/피보나치 수[Lv2] (0) | 2024.02.28 |
---|---|
[PS] Programmers/코딩테스트 연습/연습문제/삼총사 (0) | 2024.02.21 |
[PS] Programmers/코딩테스트 연습/연습문제/다음 큰 숫자 (0) | 2024.02.19 |
[PS] Programmers/코딩테스트 연습/코딩테스트 입문/등수 매기기 (0) | 2023.10.12 |
[PS] Programmers/코딩테스트 입문/2차원으로 만들기 (0) | 2023.08.05 |