인덱스 바꾸기
문제 #
문자열 my_string
과 정수 num1
, num2
가 매개변수로 주어질 때, my_string
에서 인덱스 num1
과 인덱스 num2
에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
- 제한사항
- 1 <
my_string
의 길이 < 100 - 0 ≤
num1
,num2
<my_string
의 길이 my_string
은 소문자로 이루어져 있습니다.num1
≠num2
- 1 <
- 입출력 예
my_string num1 num2 result “hello” 1 2 “hlelo” “I love you” 3 6 “I l veoyou”
나의 풀이 #
class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = "";
String[] strArr = my_string.split("");
String str = strArr[num1];
strArr[num1] = strArr[num2];
strArr[num2] = str;
for(String s : strArr){
answer += s;
}
return answer;
}
}
String[] strArr = my_string.split("");
는my_string
을 문자열 배열로 변환하는 코드입니다. 이 코드를 사용하여strArr
배열에my_string
의 각 문자를 저장합니다.String str = strArr[num1];
은strArr
배열에서num1
번째 인덱스의 값을str
변수에 저장하는 코드입니다.strArr[num1] = strArr[num2];
는strArr
배열에서num2
번째 인덱스의 값을num1
번째 인덱스로 이동시키는 코드입니다.strArr[num2] = str;
는str
변수의 값을num2
번째 인덱스로 이동시키는 코드입니다.for(String s : strArr){ answer += s; }
는strArr
배열의 각 요소를answer
변수에 연결하여 문자열을 만드는 코드입니다.- 따라서,
solution
함수는my_string
에서num1
과num2
에 해당하는 문자를 서로 교환한 문자열을 반환합니다.
다른 사람의 풀이 #
class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = "";
char[] ch = my_string.toCharArray();
ch[num1] = my_string.charAt(num2);
ch[num2] = my_string.charAt(num1);
answer = String.valueOf(ch);
return answer;
}
}
- 해당 코드는 주어진 문자열을 문자 배열로 변환하여 인덱스
num1
과num2
의 값을 교환하는 방식으로 문제를 해결합니다. - 주어진 문자열
my_string
을toCharArray()
메소드를 사용하여 문자 배열ch
로 변환합니다. - 문자 배열
ch
에서 인덱스num1
에 해당하는 값을my_string
의 인덱스num2
에 해당하는 값으로 바꿉니다. - 문자 배열
ch
에서 인덱스num2
에 해당하는 값을my_string
의 인덱스num1
에 해당하는 값으로 바꿉니다. - 문자 배열
ch
를 문자열로 변환하여answer
변수에 저장합니다. - 따라서,
solution
함수는my_string
에서num1
과num2
에 해당하는 문자를 서로 교환한 문자열을 반환합니다.
관련개념 학습 #
- 관련 개념을 찾아서 공부한 내용을 적는다.
ctrl + p
로 내가 필기한 내용 중에서 관련내용이 있는지 찾아서 그 페이지의 링크를 복사하여 붙혀넣는다.- 필기 페이지에도 이 문제의 링크를 복사하여 “관련 문제"라고 써놓고 붙혀넣는다.