Coding Test/Programmers

[Lv.0] 인덱스 바꾸기 [프로그래머스_코딩테스트] [문자열] [10분]

whawoo 2025. 6. 24. 13:52
반응형

🔍 문제 요약

https://school.programmers.co.kr/learn/courses/30/lessons/120895

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

문자열 my_string이 주어지고 인덱스 num1의 char와 인덱스 num2의 char를 바꾼 문자열을 반환하는 문제

🧠 나의 접근 방식과 시행착오

4분정도 걸린 문제. charArray로 바꾼 후에 해당하는 char를 swap 하는 형태로 풀었다. string 자체의 기능에 있을만한 기능으로 봤으나 찾아봐도 있진 않은 듯 했어서 결국 아래처럼 해결. (string에서 배열처럼 사용하여 특정 인덱스의 char를 가져올수도 있긴 하나 setter가 없는 기능이라 결국 charArray로 만들긴 해야 했다)

/// <summary>
/// 인덱스 바꾸기
/// https://school.programmers.co.kr/learn/courses/30/lessons/120895
/// </summary>
public string solution(string my_string, int num1, int num2)
{
    var charArr = my_string.ToCharArray();
    char changeC = charArr[num2];
    charArr[num2] = charArr[num1];
    charArr[num1] = changeC;

    return new string(charArr);
}

✅ 풀이 코드

피드백으로 준 부분은 간단하게 해결한 방법이고 Rider IDE에서도 추천한 방향이긴 한데 프로그래머스에서 동작하지 않을까 싶어서 일단 기본적인 방식으로 풀었었다. 피드백처럼 Tuple에 집어넣고 Swap하는 기능이 있는 듯 하다.

public string solution(string my_string, int num1, int num2)
{
    char[] arr = my_string.ToCharArray();
    (arr[num1], arr[num2]) = (arr[num2], arr[num1]);
    return new string(arr);
}

🔄 정리

문제 자체는 정말 단순한 문제긴 하다. 피드백에서 얻은 Tuple Swap에 대해서도 알아두면 나중에 쓸 수 있을 듯 하다.

반응형