프로그래머스 - 문자열 겹쳐쓰기
컴퓨팅적 사고의 필요성을 여실히 느꼈다.
진짜 문제 해석하다가 멍게소리야 3번 이상 말함..ㅎㅎ
정신차려이각박한코테세상속에서!!!!
문제를 보시라.
스위프트의 String, Character 타입은 유니코드 호환 방법.
글자 하나가 단 하나의 유니코드가 아니라,
여러개의 유니코드의 결합으로 이루어져 있을 수 있기 때문에
그 길이가 ‘가변적’이어서 Int 값을 통한 index로 특정 문자에 접근할 수 없음
때문에 파이썬에서 써먹는 arr[2] 처럼 인덱스로 정수를 받아 접근하는 것은 불가능.
구림..
String.Index를 통해 접근해야 함.
Substring 추출 메서드 활용했다.
일단 빈 문자열 result를 선언해주고,
my_string에서 s까지의 앞부분
+ overwrite_string
+ my_string에서 s부터 overwrite_string의 길이만큼 빼고 남은 문자열
요래 3개 더해서 result 에 대입하고 리턴하면 끝!
1
2
3
4
5
6
7
8
9
10
import Foundation
func solution(_ my_string:String, _ overwrite_string:String, _ s:Int) -> String {
// 빈 문자열 선언
var result = ""
// my_string에서 s까지의 앞부분 + overwrite_string + my_string에서 s부터 overwrite_string의 길이만큼 빼고 남은 문자열
result = my_string.prefix(s) + overwrite_string + my_string.suffix(my_string.count - s - overwrite_string.count)
return result
}
This post is licensed under CC BY 4.0 by the author.