상세 컨텐츠

본문 제목

글자 지우기

코딩테스트/C#

by MJ_119 2024. 6. 12. 17:34

본문

문제 설명

문자열 my_string과 정수 배열 indices가 주어질 때, my_string에서 indices의 원소에 해당하는 인덱스의 글자를 지우고 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.


제한사항
  • 1 ≤ indices의 길이 < my_string의 길이 ≤ 100
  • my_string은 영소문자로만 이루어져 있습니다
  • 0 ≤ indices의 원소 < my_string의 길이
  • indices의 원소는 모두 서로 다릅니다.

입출력 예

 

 

using System;
using System.Collections.Generic;

public class Solution {
    public string solution(string my_string, int[] indices) {
        
        HashSet<int> indexSet = new HashSet<int>(indices);
        string answer = "";

        // 문자열을 순회하면서 해당 인덱스에 포함되지 않은 문자만 추가
        for (int i = 0; i < my_string.Length; i++) {
            if (!indexSet.Contains(i)) {
                answer += my_string[i];
            }
        }

        return answer;
    }
}

 

다른 풀이

using System;
using System.Linq;

public class Solution {
    public string solution(string my_string, int[] indices) {
        string answer = "";

        for(int i = 0;i < my_string.Length;i++)
            if(!indices.Contains(i))
                answer += my_string[i].ToString();

        return answer;
    }
}

 

using System;

public class Solution {
    public string solution(string my_string, int[] indices) {
        string answer = "";
        for (var i = 0; i < my_string.Length; i++)
        {
            if (Array.IndexOf(indices, i) == -1)
                answer += my_string[i];
        }
        return answer;
    }
}

 

  • if (Array.IndexOf(indices, i) == -1): indices 배열에서 현재 인덱스 i를 찾습니다.
  • Array.IndexOf는 배열에서 특정 요소의 인덱스를 반환하며, 요소가 없으면 -1을 반환합니다.
  • 따라서 indices 배열에 i가 없을 경우, 즉 i가 indices에 포함되지 않으면 조건문이 참이 됩니다.

 

'코딩테스트 > C#' 카테고리의 다른 글

가까운 1 찾기  (0) 2024.06.12
카운트 다운  (0) 2024.06.12
배열 만들기 1  (0) 2024.06.12
문자열의 앞의 n글자  (0) 2024.06.11
문자열의 뒤의 n글자  (0) 2024.06.11

관련글 더보기