[프로그래머스_ Java_Lv0] 인덱스 바꾸기

박경희·2024년 1월 30일

코딩테스트

목록 보기
31/69

StringBuilder

public String solution(String my_string, int num1, int num2) {
        
        StringBuilder result = new StringBuilder( my_string);
        
        char temp = result.charAt(num1);
        result.setCharAt(num1, result.charAt(num2));
        result.setCharAt(num2, temp);
        
        return result.toString();
    }
  • StringBuildermutable(변경 가능) 하기 때문에 setCharAt(index, char)를 사용하여 문자열의 특정 문자를 직접 변경 가능하다.

char[] 배열을 사용한 방법 (가장 빠르다)

public String solution(String my_string, int num1, int num2) {
     char[] charArray = my_string.toCharArray(); // 문자열을 문자 배열로 변환
        
       char temp = charArray[num1];
       charArray[num1] = charArray[num2];
   	   charArray[num2] = temp;
        
        return new String(charArray); // 변경된 배열을 다시 문자열로 변환
    }

List<String>

import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public static String solution(String my_string, int num1, int num2) {
        List<String> list = Arrays.stream(my_string.split("")).collect(Collectors.toList());
        Collections.swap(list, num1, num2);
        return String.join("", list);
    }

1️⃣ my_string.split(""): 문자열을 리스트로 변환

Arrays.stream(my_string.split("")).collect(Collectors.toList());

2️⃣ Collections.swap(list, num1, num2): 리스트에서 두 인덱스의 문자 교환

Collections.swap(list, num1, num2);
  • 리스트에서num1num2 위치의 값을 서로 교환.

3️⃣ String.join("", list): 리스트를 다시 문자열로 변환

return String.join("", list);

0개의 댓글