본문 바로가기
algorithm

[프로그래머스]인덱스 바꾸기 - java,python

by skysline 2023. 3. 8.
반응형

`인덱스 바꾸기`

문제 설명

문자열 my_string과 정수 num1, num2가 매개변수로 주어질 때,

 my_string에서 인덱스 num1과 인덱스 num2에 해당하는 문자를 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.

입출력 예


입출력 예 #1

  • "hello"의 1번째 인덱스인 "e"와 2번째 인덱스인 "l"을 바꾸면 "hlelo"입니다.

입출력 예 #2

  • "I love you"의 3번째 인덱스 "o"와 " "(공백)을 바꾸면 "I l veoyou"입니다.

 java code

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 = my_string.split();
        String tmp = answer[num1];
        answer[num1] = answer[num2];
        answer[num2] = tmp;
        return String.join("",answer);
    }
}
// swap
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);
    }
}

python code

def solution(my_string, num1, num2):
    answer =""
    my_string = list(my_string)
    my_string[num1],my_string[num2] = my_string[num2],my_string[num1]
    answer += "".join(my_string)
    return answer

반응형

댓글