728x90
반응형
정수 배열이 주어졌을 때, 배열에서 매 k번째 요소를 제거하는 것입니다.
예를 들어, 주어진 배열이 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]이고 k가 3이면, 3번째 요소와 그 다음에도 3의 배수에 해당하는 요소들을 제거한 새로운 배열을 반환해야 합니다.
예시로 주어진 입력에서는 [1, 2, 4, 5, 7, 8, 10]이 되어야 합니다.
int[] solution(int[] inputArray, int k) {
List<int> li = inputArray.ToList();
int num = inputArray.Length/k;
for(int i = num;i >= 1;i--){
li.RemoveAt(k*i-1);
}
return li.ToArray();
}
inputArray를 List<int>로 변환합니다.
제거할 요소의 개수인 num을 계산합니다.
뒤에서부터 k번째 요소를 제거합니다. (RemoveAt 메서드를 사용하여 해당 인덱스의 요소를 제거합니다.)
마지막으로, List<int>를 다시 배열로 변환하여 반환합니다.
주의할 점은 뒤에서부터 REMOVE를 해줘야 INDEX 오류가 나지 않는다.
삭제하는 방법 말고도 FOR문을 돌면서 제외할 값을 뺀 나머지 값들로 ARRAY를 만드는 방법이 있다.
static int[] solution(int[] inputArray, int k)
{
List<int> result = new List<int>();
for (int i = 0; i < inputArray.Length; i++)
{
// (i + 1) % k == 0 이면 k의 배수이므로 해당 요소를 제외하고 결과에 추가
if ((i + 1) % k != 0)
{
result.Add(inputArray[i]);
}
}
return result.ToArray();
}
728x90
반응형
'CodeSignal' 카테고리의 다른 글
growingPlant (0) | 2023.12.24 |
---|---|
differentSymbolsNaive (1) | 2023.12.22 |
Circle of Numbers (0) | 2023.12.18 |
chessBoardCellColor (2) | 2023.12.17 |
stringsRearrangement (1) | 2023.12.17 |