나는 좀 단순하게 풀었는데,
class Solution {
public String solution(String my_string, int num1, int num2) {
String answer = my_string.substring(0,num1) + my_string.charAt(num2) + my_string.substring(num1+1,num2) + my_string.charAt(num1) + my_string.substring(num2+1);
return answer;
}
}
풀이가 다양하게 나오는 것 같아 가져와 봄.
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;
}
}
▲ toCharArray()를 통해 char 배열로 만들어 정석대로 배열 요소 삽입/변경을 수행한 코드.
마지막엔 다시 String.valueOf를 통해 String 객체로 변환해서 리턴했다.
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);
}
}
▲ stream()을 통해 List 객체로 만든 뒤 swap()을 이용한 코드.
마지막에는 다시 String.join()을 통해 String 객체 ""에 list의 요소를 문자열 병합해서 최종적으로 문자열 형태로 리턴했다.
class Solution {
public String solution(String my_string, int num1, int num2) {
char temp = my_string.charAt(num1);
StringBuilder sb = new StringBuilder(my_string);
sb.setCharAt(num1, my_string.charAt(num2));
sb.setCharAt(num2, temp);
return String.valueOf(sb);
}
}
▲ 가변성 있는 문자열 처리에 유용한 StringBuilder를 사용한 코드.
마지막엔 마찬가지로 String.valueOf를 통해 String 객체로 변환해서 리턴했다.
'Study with me > 프로그래머스 L0 마스터하기' 카테고리의 다른 글
프로그래머스 - L0 특별한이차원배열2 (0) | 2024.01.04 |
---|---|
프로그래머스 - L0 0떼기 (1) | 2024.01.03 |
프로그래머스 - L0 문자열정렬하기(1) // String → char → int (0) | 2024.01.02 |
프로그래머스 - L0 최댓값만들기(2) (1) | 2024.01.01 |
프로그래머스 - L0 x사이의개수 (0) | 2023.12.29 |