포스트

159. 숫자 찾기


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

func solution(_ num:Int, _ k:Int) -> Int {
    
    var answer : Int = 0
    var arr = String(num).map{$0}
    var arr1 = arr.enumerated().map{$0}
    arr1 = arr1.filter{$0.1 == Character(String(k))}

    answer = arr1.count > 0 ? arr1[0].offset + 1 : -1 

    return answer
}

처음에는 filter와 firstIndex를 써서 하려고했는데 이상하게 막혀버려서 결국 다른 방법을 사용하였다.

우선 num을 배열화 하였고. enumerated를 사용하여 만들어진 배열에 인덱스 값을 추가하였다.

그이후 filter를 사용해 k값과 일치하는 원소만 추출하였고

여러값이 나왔다면 초기값을 리턴하면 되기에 arr1[0]을 리턴하였다.

하지만 우리가 생각하는 인덱스와 문제에서 결과값에 대한 인덱스값은 달라서 +1을 해주었다.

다른코드를 보니 앞에 array를 씌워야 했는데 나는 씌우지않고 그대로해서 string index가 나와 해결을 하지 못했다… 거의다한건데 나중에 다시 해봐야겠다.

다른코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
unc solution(_ num: Int, _ k: Int) -> Int { Array("-\(num)").firstIndex(of: Character(String(k))) ?? -1 }
//
import Foundation

func solution(_ num:Int, _ k:Int) -> Int {
    let s = String(num).map{ Int(String($0))! }
    return (s.firstIndex(of: k) ?? -2) + 1
}
//
import Foundation

func solution(_ num:Int, _ k:Int) -> Int {
    return String(num).contains(Character(String(k))) ? Array(String(num)).firstIndex(of: Character(String(k)))! + 1 : -1
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.