Skip to content

Commit fa01ce1

Browse files
[level 1] Title: 크기가 작은 부분문자열, Time: 7.74 ms, Memory: 62.3 MB -BaekjoonHub
1 parent d5435d7 commit fa01ce1

2 files changed

Lines changed: 90 additions & 0 deletions

File tree

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
# [level 1] 크기가 작은 부분문자열 - 147355
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/147355)
4+
5+
### 성능 요약
6+
7+
메모리: 62.3 MB, 시간: 7.74 ms
8+
9+
### 구분
10+
11+
코딩테스트 연습 > 연습문제
12+
13+
### 채점결과
14+
15+
정확성: 100.0<br/>합계: 100.0 / 100.0
16+
17+
### 제출 일자
18+
19+
2024년 12월 01일 00:13:43
20+
21+
### 문제 설명
22+
23+
<p>숫자로 이루어진 문자열 <code>t</code>와 <code>p</code>가 주어질 때, <code>t</code>에서 <code>p</code>와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 <code>p</code>가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.</p>
24+
25+
<p>예를 들어, <code>t</code>="3141592"이고 <code>p</code>="271" 인 경우, <code>t</code>의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다.</p>
26+
27+
<hr>
28+
29+
<h5>제한사항</h5>
30+
31+
<ul>
32+
<li>1 ≤ <code>p</code>의 길이 ≤ 18</li>
33+
<li><code>p</code>의 길이 ≤ <code>t</code>의 길이 ≤ 10,000</li>
34+
<li><code>t</code>와 <code>p</code>는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다.</li>
35+
</ul>
36+
37+
<hr>
38+
39+
<h5>입출력 예</h5>
40+
<table class="table">
41+
<thead><tr>
42+
<th>t</th>
43+
<th>p</th>
44+
<th>result</th>
45+
</tr>
46+
</thead>
47+
<tbody><tr>
48+
<td>"3141592"</td>
49+
<td>"271"</td>
50+
<td>2</td>
51+
</tr>
52+
<tr>
53+
<td>"500220839878"</td>
54+
<td>"7"</td>
55+
<td>8</td>
56+
</tr>
57+
<tr>
58+
<td>"10203"</td>
59+
<td>"15"</td>
60+
<td>3</td>
61+
</tr>
62+
</tbody>
63+
</table>
64+
<hr>
65+
66+
<h5>입출력 예 설명</h5>
67+
68+
<p>입출력 예 #1<br>
69+
본문과 같습니다.</p>
70+
71+
<p>입출력 예 #2<br>
72+
<code>p</code>의 길이가 1이므로 <code>t</code>의 부분문자열은 "5", "0", 0", "2", "2", "0", "8", "3", "9", "8", "7", "8"이며 이중 7보다 작거나 같은 숫자는 "5", "0", "0", "2", "2", "0", "3", "7" 이렇게 8개가 있습니다.</p>
73+
74+
<p>입출력 예 #3<br>
75+
<code>p</code>의 길이가 2이므로 <code>t</code>의 부분문자열은 "10", "02", "20", "03"이며, 이중 15보다 작거나 같은 숫자는 "10", "02", "03" 이렇게 3개입니다. "02"와 "03"은 각각 2, 3에 해당한다는 점에 주의하세요</p>
76+
77+
78+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class Solution {
2+
fun solution(t: String, p: String): Int {
3+
var answer = 0
4+
val maxLength = p.length
5+
val targetNum = p.toLong()
6+
for (start in 0..t.length - maxLength) {
7+
val num = t.substring(start, start + maxLength).toLong()
8+
if (num <= targetNum) answer++
9+
}
10+
return answer
11+
}
12+
}

0 commit comments

Comments
 (0)