PS/프로그래머스 입문 100제

[프로그래머스] LV.0 인덱스 바꾸기 - 자바 [55/100]

yaho!! 2024. 6. 25. 12:03

💬 문제 설명

문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때, my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.

 

🚫 제한 사항

  • 1 < my_string의 길이 < 100
  • 0 ≤ num1, num2 < my_string의 길이
  • my_string은 소문자로 이루어져 있습니다.
  • num1 ≠ num2

 

📢 입출력 예

 

👨‍🏫 입출력 예 설명

 

📃 제출 코드

class Solution {
    public String solution(String my_string, int num1, int num2) {
        char[] arr = my_string.toCharArray();
        
        char temp = arr[num1];
        arr[num1] = arr[num2];
        arr[num2] = temp;
        
        
        return new String(arr);
    }
}

 

 

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;
    }
}

✏ 해결방법 & 배운점

코드 1)

이 문제는 문자열 `my_string`에서 주어진 두 인덱스 `num1`과 `num2`에 해당하는 문자를 서로 바꿔서 새로운 문자열을 반환하는 문제입니다. 이를 해결하기 위해 문자열을 문자 배열로 변환하고, 해당 인덱스의 문자를 교환한 후 다시 문자열로 반환하는 방법을 사용하여 문제를 해결하였습니다.

 

코드 2)

문자열을 문자 배열로 변환하지 않고 `my_string` 문자열의 길이만큼  문자열을 순회하면서 두 인덱스의 문자를 교환하는 방법으로 문제를 해결하였습니다.