43. 문자열 뒤의 n글자
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import Foundation
func solution(_ my_string:String, _ n:Int) -> String {
var answer : String = ""
var arr : [String] = []
var N : Int = 0
for string in my_string {
arr.append(String(string))
}
N = arr.count-1 - n
if N > 0 {
arr.removeSubrange(0...N)
answer = arr.joined()
} else {
answer = arr.joined()
}
return answer
}
이렇게 생각한 이유.
고민을 하다가 joined가 생각나서 해당 문자열을 배열로 전환하여 배열에서 인덱스의 범위 값을 제거하는 arr.removeSubrange(startindex … lastindex)를 통하여 제거를 한 뒤에, join을 써서 해결하였다.
하지만 3문제가 틀렸는데 알고보니 N 이 무조건 0보다 클때 이 코드는 작동하는 것이었고, 그러지 않을때를 생각하지 못했다.
그래서 if조건을 달아서 해결하였다.
다른 코드를 보니 심플한것도 많았고, 내가 배열을 만든것을 map이라는 고차함수로 풀어내었다.
이것까진 생각못했는데 다음번엔 적용해봐야겠다.
다른 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import Foundation
func solution(_ my_string:String, _ n:Int) -> String {
let index = my_string.index(my_string.endIndex, offsetBy: -n)
return String(my_string[index...])
}
//
import Foundation
func solution(_ my_string:String, _ n:Int) -> String {
return String(my_string.suffix(n))
}
//
import Foundation
func solution(_ my_string:String, _ n:Int) -> String {
let index = my_string.index(my_string.startIndex, offsetBy: my_string.count - n)
return String(my_string[index...])
}
import Foundation
func solution(_ my_string:String, _ n:Int) -> String {
let count = my_string.count - n
var myArray = Array(my_string).map{String($0)}
myArray.removeFirst(count)
return myArray.joined(separator : "")
}
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.