문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
1 < my_string의 길이 < 100
0 ≤ num1, num2 < my_string의 길이
my_string은 소문자로 이루어져 있습니다.
num1 ≠ num2입출력 예
my_string num1 num2 result "hello" 1 2 "hlelo" "I love you" 3 6 "I l veoyou"
func solution(_ my_string:String, _ num1:Int, _ num2:Int) -> String {
var arr = Array(my_string)
arr.swapAt(num1, num2)
return String(arr)
}
처음에는 문자열 메서드로 삽입과 삭제로 문제 해결을 시도했는데, 타입 에러가 계속 발생하는데 원인을 못찾겠더란 거다.
배열로 지정해주고 구글에 "Swift 배열 순서 바꾸기"라고 검색해보니swapAt
이라는 새로운 메서드를 발견할 수 있었다.
사용법은 간단하다.
array.swapAt(index1, index2)
index1
, index2
는 서로 교환하고 싶은 두 요소의 인덱스를 의미하고, 메서드 호출하면 index1
의 요소와 index2
에 있는 요소가 자리 바꿈이 된다.
시간 날 때 다른 방법으로 푸는 방법도 찾아봐야겠다.