본문 바로가기
코딩테스트/프로그래머스 입문

[코딩테스트 Lv.0] 인덱스 바꾸기

by 블루데이제이 2024. 3. 17.
728x90
반응형
문제 설명

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

제한 사항
1 < my_string의 길이 < 100
0 ≤ num1, num2 < my_string의 길이
my_string은 소문자로 이루어져 있습니다.
num1 ≠ num2
입출력 예
my_string	num1	num2	result
"hello"		1	2	"hlelo"
"I love you"	3	6	"I l veoyou"
입출력 예 설명
입출력 예 #1
"hello"의 1번째 인덱스인 "e"와 2번째 인덱스인 "l"을 바꾸면 "hlelo"입니다.

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

내 풀이
Java
class Solution {
    public String solution(String my_string, int num1, int num2) {
        String answer = "";
        String str1 = String.valueOf(my_string.charAt(num1));
        String str2 = String.valueOf(my_string.charAt(num2));
        
        for(int i = 0; i < my_string.length(); i++){
            String s = String.valueOf(my_string.charAt(i));
            if(i == num1){
                answer += str2;
            }else if(i == num2){
                answer += str1;
            }else{
                answer += s;
            }
        }
        
        return answer;
    }
}

import java.util.*;
class Solution {
    public String solution(String my_string, int num1, int num2) {
        String answer = "";
        
        char arr[] = my_string.toCharArray();
        char tmp = arr[num1];
        arr[num1] = arr[num2];
        arr[num2] = tmp;
        
        answer = new String(arr);
        return answer;
    }
}
C
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* my_string, int num1, int num2) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    char* answer = (char*)malloc(sizeof(char) * strlen(my_string));
    
    char ch1 = my_string[num1];
    char ch2 = my_string[num2];
    
    int i = 0;
    for(i = 0; i < strlen(my_string); i++){
        char s = my_string[i];
        if(i == num1){
            answer[i] = ch2;
        }else if(i == num2){
            answer[i] = ch1;
        }else{
            answer[i] = s;
        }
    }
    answer[i] = '\0';
    
    return answer;
}
Python
def solution(my_string, num1, num2):
    answer = ''
    
    str1 = my_string[num1];
    str2 = my_string[num2];
    for i in range(len(my_string)):
        s = my_string[i]
        if i == num1:
            answer += str2
        elif i == num2:
            answer += str1
        else:
            answer += s
    
    return answer
728x90
반응형