본문 바로가기
코딩 테스트/프로그래머스

[프로그래머스] (Swift) 크기가 작은 부분 문자열 - Lv.1

by Dev.Andy 2023. 5. 11.

프로그래머스 문제 이미지 - 크기가 작은 부분 문자열 - Lv.1

코딩테스트 연습 - 크기가 작은 부분 문자열 | 프로그래머스 스쿨

 

풀이

문자열을 배열로 분리

  1. 매개변수 t의 숫자를, 문자열 타입의 숫자로 하나로 분리한 배열로 변환한다
  2. 반복문에 필요한 범위와 부분문자열의 길이를 할당한다
  3. 부분문자열이 p보다 작거나 같으면 결괏값을 1 증가시킨다

 

코드

import Foundation

func solution(_ t:String, _ p:String) -> Int { // solution("3141592", "271")
    
    // 매개변수 t의 숫자를, 문자열 타입의 숫자로 하나로 분리한 배열로 변환
    let stringArray = Array(t).map { String($0) } // ["3", "1", "4", "1", "5", "9", "2"]
    
    // 결괏값을 0으로 초기화
    var count = 0
    
    // 반복문에 필요한 범위와 부분문자열의 길이를 할당
    let range = t.count - p.count + 1
    let offset = p.count - 1
    
    for i in 0..<range {
        // 부분문자열 할당
        let subString = stringArray[i...i+offset].joined() // "314", "271", ...
        
        // 부분문자열이 p보다 작거나 같으면 결괏값을 1 증가
        if Int(subString)! <= Int(p)! {
            count += 1
        }
    }
    
    // 결괏값 반환
    return count
}

 

댓글