Coding Test

인덱스 바꾸기

honey-vision 2024. 7. 21. 16:20

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


C언어

my_string의 길이를 변수 len에 담고 길이 + 1 만큼 동적할당을 해준다.

strcpy() 함수로 my_string을 answer에 복사한다.

num1번의 인덱스를 tmp 변수에 잠시 옮겨 놓고, num2번의 인덱스를 num1로 옮긴다.

처음 num1번의 값이 담겨있는 tmp 인덱스를 num2로 옮긴다.

answer를 반환하면 인덱스가 변환되어 출력된다.

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// 파라미터로 주어지는 문자열은 const로 주어집니다. 변경하려면 문자열을 복사해서 사용하세요.
char* solution(const char* my_string, int num1, int num2) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
   size_t len = strlen(my_string);
    char* answer = (char*)malloc((len + 1) * sizeof(char));
    
    strcpy(answer, my_string);
    char tmp = answer[num1];
    answer[num1] = answer[num2];
    answer[num2] = tmp;
    
    return answer;
}

파이썬

주어진 my_string은 문자열을 바로 바로 사용할 수 없기 때문에 list로 변환을 한 번 하고 다음으로 넘어간다.

list(my_string)으로 문자열을 리스트의 형태로 변환한다.

num1번의 인덱스는 num2로, num2번의 인덱스는 num1로 옮긴다.

answer에는 리스트 형태가 아닌 주어진 문자열 형태로 출력하기 위해 join으로 합친 후 반환한다.

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

'Coding Test' 카테고리의 다른 글

양꼬치  (0) 2024.07.23
주사위의 개수  (0) 2024.07.22
직각삼각형 출력하기  (0) 2024.07.20
배열 원소의 길이  (0) 2024.07.19
배열 뒤집기  (0) 2024.07.18