ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Programmers] Swift 알고리즘 | Lv.0 배열의 유사도
    ► Swift/Programmers 2024. 1. 30. 20:53
    반응형
    import Foundation
    
    func solution(_ s1:[String], _ s2:[String]) ->Int{Set(s1).intersection(s2).count}
    
    
    print(solution(["a", "b", "c"],["com", "b", "d", "p", "c"]))    // expected result: 2
    print(solution(["n", "omg"],["m", "dot"]))                      // expected result: 0

    🔒 문제 설명

    배열이 얼마나 유사한지 확인해보려고 합니다. 문자열 배열 s1 s2 주어질 같은 원소의 개수를 return하도록 solution 함수를 완성해주세요.


    🔒 제한사항  

    • 1 ≤ s1, s2의 길이 ≤ 100
    • 1 ≤ s1, s2의 원소의 길이 ≤ 10
    • s1과 s2의 원소는 알파벳 소문자로만 이루어져 있습니다
    • s1 s2 각각 중복된 원소를 갖지 않습니다.

    🔒 입출력 예

    s1 s2 result
    ["a", "b", "c"] ["com", "b", "d", "p", "c"] 2
    ["n", "omg"] ["m", "dot"] 0

    🔒 입출력 예 설명

    입출력 예 #1

    • "b"와 "c"가 같으므로 2를 return합니다.

    입출력 예 #2

    • 같은 원소가 없으므로 0 return합니다.

    🔒 유의사항

    • 연속된 숫자도 각각  자리 숫자로 취급합니다.

     

     

    🔐 solution of mine

    for 문

    Array.contains() → Array에 String이 있는지 확인하는 방법 (output: boolean)

    func solution(_ s1:[String], _ s2:[String]) ->Int{
        var answer:Int = 0
        for i in s1 {
            if s2.contains(i){answer += 1}
        }
        return answer
    }
    
    
    print(solution(["a", "b", "c"],["com", "b", "d", "p", "c"]))    // expected result: 2
    print(solution(["n", "omg"],["m", "dot"]))                      // expected result: 0

     


     

    🔐 solution of others

    Array.map()Array.contains(_:)Array.filter{}

    Array.count

    import Foundation
    
    func solution(_ s1:[String], _ s2:[String]) ->Int{
        return s1.map(s2.contains(_:)).filter{$0}.count
    }
    
    print(solution(["a", "b", "c"],["com", "b", "d", "p", "c"]))    // expected result: 2
    print(solution(["n", "omg"],["m", "dot"]))                      // expected result: 0

     

    ♦︎ 해설집

    import Foundation
    
    func solution(_ s1:[String], _ s2:[String]) ->Int{
        print(s1.map(s2.contains(_:)))              // output: [false, true, true]
        print(s1.map(s2.contains(_:)).filter{$0})   // output: [true, true]
        return s1.map(s2.contains(_:)).filter{$0}.count
    }
    
    print(solution(["a", "b", "c"],["com", "b", "d", "p", "c"]))    // expected result: 2

     

    🔐 solution of others

    Array.filter{}

    Array.contains()

    Array.count

    import Foundation
    
    func solution(_ s1:[String], _ s2:[String]) ->Int{
        return s1.filter{s2.contains($0)}.count
    }
    
    print(solution(["a", "b", "c"],["com", "b", "d", "p", "c"]))    // expected result: 2
    print(solution(["n", "omg"],["m", "dot"]))                      // expected result: 0

     

    ♦︎ 해설집

    import Foundation
    
    func solution(_ s1:[String], _ s2:[String]) ->Int{
        print(s1.filter{s2.contains($0)})   		// output: ["b", "c"]
        return s1.filter{s2.contains($0)}.count
    }
    
    print(solution(["a", "b", "c"],["com", "b", "d", "p", "c"]))    // expected result: 2

     

    🔐 solution of others

    Set()

    Set.intersection()

    Set.count

    import Foundation
    
    func solution(_ s1:[String], _ s2:[String]) ->Int{
        return s1.filter{s2.contains($0)}.count
    }
    
    print(solution(["a", "b", "c"],["com", "b", "d", "p", "c"]))    // expected result: 2
    print(solution(["n", "omg"],["m", "dot"]))                      // expected result: 0

     

    ♦︎ 해설집

    import Foundation
    
    func solution(_ s1:[String], _ s2:[String]) ->Int{
        print(s1)                                   // output: ["a", "b", "c"]
        print(Set(s1).intersection(s2))             // output: ["c", "b"]
        return Set(s1).intersection(s2).count
    }
    
    print(solution(["a", "b", "c"],["com", "b", "d", "p", "c"]))    // expected result: 2

     

     

     


     
    반응형
Designed by Tistory.