11. 문자열 섞기 (fin)
나의 코드 before
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import Foundation
func solution(_ str1:String, _ str2:String) -> String {
var answer : String = ""
var string : String = ""
string = String(str1[str1.startIndex]) + String(str2[str2.startIndex])
for i in 0 ... str1.count-1 {
answer += string
}
return answer
}
이렇게 생각한 이유.
각 문자열의 첫번째를 추출해서 반복문을 통해 더했다. 하지만 채점하니 대부분이 틀렸다.
반례가 있었다.
개선 한 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import Foundation
func solution(_ str1:String, _ str2:String) -> String {
var answer : String = ""
var ansarr : [String] = []
var arr : [String] = []
var arr1 : [String] = []
arr = str1.map{String($0)}
arr1 = str2.map{String($0)}
for i in arr.indices{
ansarr.append(arr[i])
ansarr.append(arr1[i])
}
answer = ansarr.joined()
return answer
}
결국 배열로 접근하여 문제를 풀었다.
아마 이당시에는 배열로 전환하는 생각을 아예 못했던거같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import Foundation
func solution(_ str1:String, _ str2:String) -> String {
return zip(str1, str2).map { String($0) + String($1) }.joined()
}
//
import Foundation
func solution(_ str1:String, _ str2:String) -> String {
var result: String = ""
for (one, two) in zip(str1, str2) {
result.append(one)
result.append(two)
}
return result
}
zip으로 간단하게 한걸 볼수있었다. zip은 아예생각지도 못했다.
서술하지 않은 다른 코드들도 대부분 배열로 접근하여 풀었다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.