포스트

204. k의 개수


1
2
3
4
5
6
7
8
9
10
11
12
import Foundation

func solution(_ i:Int, _ j:Int, _ k:Int) -> Int {
    
    var arr = (i...j).filter{String($0).contains(String(k))}.map{String($0)}
    
    var string = arr.joined()
    
    var answer = string.map{$0}.filter{String($0).contains(String(k))}.count

    return answer
}

뭔가 너무 장황하게 아닌건가 싶기도 하다.

일단 i~j까지 의 숫자에 k를 포함하는 수를 걸러 내었고, 그걸 join으로 하나의 문자열로 만들었다.

그리고 다시 map을 사용했다 왜냐하면 11같이 1이 두번들어가는건 위에서 contains를 써보니 하나로 걸러졌기 때문이다.

그리고 다시 filter를 사용해 카운트하여 답을 리턴하였다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.