[알고리즘문제풀기] 인덱스 바꾸기

silver's avatar
Dec 08, 2025
[알고리즘문제풀기] 인덱스 바꾸기

문제

내가 작성한 정답

class Solution { public String solution(String my_string, int num1, int num2) { String answer = ""; for(int i=0; i<my_string.length(); i++){ if(i==num1) answer += my_string.charAt(num2); else if (i==num2) answer += my_string.charAt(num1); else answer += my_string.charAt(i); } 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; } } 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>으로 수집 // 예: "abc" -> ["a","b","c"] List<String> list = Arrays.stream(myString.split("")) .collect(Collectors.toList()); // Collections.swap(List<?> list, int i, int j) // 리스트에서 인덱스 i번째 요소와 j번째 요소의 위치를 서로 맞바꾼다. // 내부적으로는 temp 변수 하나 두고 list.set() 세 번 하는 것과 동일. Collections.swap(list, num1, num2); // 리스트의 요소들을 다시 하나의 문자열로 이어 붙임 // 예: ["a","c","b"] -> "acb" return String.join("", list); } }
Share article

silver