반응형
--------------------문제 설명--------------------
숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요.
--------------------제한 사항--------------------
- 1 ≤ p의 길이 ≤ 18
- p의 길이 ≤ t의 길이 ≤ 10,000
- t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다.
-------------------- 풀이 --------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
func solution(_ t:String, _ p:String) -> Int {
var t = t
var tAry = t.map{String($0)}
var idx = 0
var num = 0
var result = 0
while true{
var strtIdx = tAry.index(tAry.startIndex, offsetBy: idx)
var endIdx = tAry.index(tAry.startIndex, offsetBy: idx + p.count - 1)
num = Int(tAry[strtIdx...endIdx].joined())!
if num <= Int(p)!{result += 1}
if idx + p.count - 1 == tAry.count - 1{break}
idx += 1
}
return result
}
|
cs |
문제를 푸는 느낌은
1. t를 배열로 만든다.
2. p.count -1 만큼 index로 배열을 자른다.
3. 자른 배열을 joined함수를 이용하여 String타입을 합쳐준다.
4. 자른 num 변수와 p를 int형으로 변경하여 비교한다음 작거나 같으면 result에 +1해준다.
5. 만약 문자열의 마지막이면 while문을 나가고 아니라면 idx에 +1를 해준다.
이런식으로 생각했습니다.
방법은 다양하지만 이정도가 되지 않을까 싶어요
반응형
'Algorithm & Data Structure > Algorithm' 카테고리의 다른 글
[프로그래머스] K번째 수 .with Swift (0) | 2024.06.24 |
---|---|
[프로그래머스] 최소직사각형 .Swift (0) | 2024.06.17 |
[프로그래머스] 예상 대진표 .with Swift (1) | 2024.06.13 |
[프로그래머스] 내적 .with Swift (0) | 2024.06.04 |
[프로그래머스] 수박수박수박수박수박수? .with Swift (0) | 2024.06.03 |