-
[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
반응형'► Swift > Programmers' 카테고리의 다른 글
[Programmers] Swift 알고리즘 | Lv.0 자릿수 더하기 (0) 2024.01.30 [Programmers] Swift 알고리즘 | Lv.0 삼각형의 완성조건 (1) (1) 2024.01.30 [Programmers] Swift 알고리즘 | Lv.0 옷가게 할인 받기 (1) 2024.01.26 [Programmers] Swift 알고리즘 | Lv.0 배열 두배 만들기 (0) 2024.01.26 [Programmers] Swift 알고리즘 | Lv.0 머쓱이보다 키 큰 사람 (0) 2024.01.26