ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Programmers] Swift 알고리즘 | Lv.0 숨어있는 숫자의 덧셈 (1)
    ► Swift/Programmers 2024. 1. 26. 21:17
    반응형

    🔒 문제 설명

    문자열 my_string 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.


    🔒 제한사항  

    • 1 ≤ my_string의 길이 ≤ 1,000
    • my_string 소문자, 대문자 그리고 한자리 자연수로만 구성되어있습니다.

    🔒 입출력 예

    my_string result
    "aAb1B2cC34oOp" 10
    "1a2b3c4d123" 16

    🔒 입출력 예 설명

    입출력 예 #1

    • "aAb1B2cC34oOp"안의 한자리 자연수는 1, 2, 3, 4 입니다. 따라서 1 + 2 + 3 + 4 = 10 을 return합니다.

    입출력 예 #2

    • "1a2b3c4d123Z"안의 한자리 자연수는 1, 2, 3, 4, 1, 2, 3 입니다. 따라서 1 + 2 + 3 + 4 + 1 + 2 + 3 = 16 return합니다.

    🔒 유의사항

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

     

    🔐 solution of mine

    Array() → String을 Array로 바꾸는 방법

    Array().filter{} → 배열중에 조건에 맞는 인덱스만 배열에 남기는 방법

    String.isNumber → String이 숫자인지 확인하는 방법

    Character.wholeNumberValue → Character를 Int로 바꾸는 방법

    ! → Optional을 unwrapping하는 방법

     

    import Foundation
    
    func solution(_ my_string:String) -> Int {
        var answer:Int = 0
        var filtered = Array(my_string.filter{$0.isNumber})
        for i in filtered {
            answer += i.wholeNumberValue!
        }
        return answer
    }
    
    print(solution("aAb1B2cC34oOp"))  // expected result: 10
    print(solution("1a2b3c4d123"))    // expected result: 16

     


     

    🔐 solution of others

    String.compactMap{Int(String($0))} → String 중에 Int 만 추출하는 방법

    Int()

    String()

    Array.reduce()

    import Foundation
    
    func solution(_ my_string:String) -> Int{my_string.compactMap{Int(String($0))}.reduce(0,+)}
    
    print(solution("aAb1B2cC34oOp"))  // expected result: 10
    print(solution("1a2b3c4d123"))    // expected result: 16

     

    ♦︎ 해설집

    import Foundation
    
    func solution(_ my_string:String) -> Int {
        print(my_string.compactMap{String($0)}) 		//output: ["a", "A", "b", "1", "B", "2", "c", "C", "3", "4", "o", "O", "p"]
        print(my_string.compactMap{Int(String($0))}) 	//output: [1, 2, 3, 4]
        print(my_string.compactMap{Int(String($0))}.reduce(0,+)) //output: [1, 2, 3, 4]
        return 0
    }
    
    print(solution("aAb1B2cC34oOp"))  // expected result: 10

     

    🔐 solution of others

    import Foundation
    
    func solution(_ my_string:String) -> Int{my_string.filter{$0.isNumber}.map{Int(String($0))!}.reduce(0,+)}
    
    print(solution("aAb1B2cC34oOp"))  // expected result: 10
    print(solution("1a2b3c4d123"))    // expected result: 16

     

    ♦︎ 해설집

    import Foundation
    
    func solution(_ my_string:String) -> Int{
    	print(my_string.filter{$0.isNumber})    // output: 1234
        print(my_string.filter{$0.isNumber}.map{$0})    // output: Array<Character> ["1", "2", "3", "4"]
        print(my_string.filter{$0.isNumber}.map{String($0)}) 	// output: Array<String> ["1", "2", "3", "4"]
        print(my_string.filter{$0.isNumber}.map{Int(String($0))}) 	// output: [Optional(1), Optional(2), Optional(3), Optional(4)]
        print(my_string.filter{$0.isNumber}.map{Int(String($0))!}) 	// output: [1, 2, 3, 4]
        return my_string.filter{$0.isNumber}.map{Int(String($0))!}.reduce(0,+)
    }
    
    print(solution("aAb1B2cC34oOp"))  // expected result: 10

     


     
    반응형
Designed by Tistory.