문제 설명
문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 1 < my_string의 길이 < 100
- 0 ≤ num1, num2 < my_string의 길이
- my_string은 소문자로 이루어져 있습니다.
- num1 ≠ num2
입출력 예
입출력 설명
입출력 예 #1
- "hello"의 1번째 인덱스인 "e"와 2번째 인덱스인 "l"을 바꾸면 "hlelo"입니다.
입출력 예 #2
- "I love you"의 3번째 인덱스 "o"와 " "(공백)을 바꾸면 "I l veoyou"입니다.
코드
class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = "";
String[] strArr = my_string.split("");
strArr[num1] = String.valueOf(my_string.charAt(num2));
strArr[num2] = String.valueOf(my_string.charAt(num1));
answer = String.join("", strArr);
return answer;
}
}
풀이
my_string을 문자열배열로 변환하여 num1번째 자리에 num2 문자를 저장하고, num2번째 자리에 num1 문자를 저장한다. join을 이용해 문자열로 변환하여 answer에 저장한다.
다른 코드와 풀이
아래의 코드는 다른 사람들이 작성한 것들로, 내 코드와 비교, 참고하기 위해 가져왔다.
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
class Solution {
public String solution(String myString, int num1, int num2) {
List<String> list = Arrays.stream(myString.split("")).collect(Collectors.toList());
Collections.swap(list, num1, num2);
return String.join("", list);
}
}
myString을 문자스트림으로 변환하여 문자열의 각 문자를 리스트의 요소로 저장한다. Collections.swap() 메서드를 통해 list의 num1, num2에 해당하는 문자를 서로 교환하고 이를 문자열로 변환한다.
정리
swap()
: 지정된 위치에 있는 요소를 교환하는 메서드
'Coding Test' 카테고리의 다른 글
230929 중복된 숫자 개수 - Level 0 (0) | 2023.09.29 |
---|---|
230928 숫자 찾기 - Level 0 (0) | 2023.09.28 |
230927 대문자와 소문자 - Level 0 (0) | 2023.09.27 |
230926 중복된 문자 제거 - Level 0 (0) | 2023.09.26 |
230926 문자열 정렬하기 (1) - Level 0 (0) | 2023.09.26 |