TIL
내일배움캠프 31일차 TIL
kimseung2331
2024. 2. 5. 20:31
오늘 학습한 내용
[알고리즘]
나누어 떨어지는 숫자 배열
반복문을 돌려서 arr[i] % divisor == 0일때의 값을 찾아서 정렬하면 되겠다고 생각했다.
answer의 배열의 크기를 어떻게 처리할까 고민했는데 좋은 방법이 떠오르지 않았는데 더 좋은 방법이 있었을 것 같다.
마찬가지로 divisor로 나누어 떨어지지 않을 경우를 어떻게 처리하는 방법도 더 좋은 방법이 있었을 것 같다.
using System;
public class Solution
{
public int[] solution(int[] arr, int divisor)
{
int count = 0;
for (int t = 0; t<arr.Length; t++)
{
if (arr[t] % divisor == 0)
{
count++;
}
}
int[] answer = new int[count];
for(int i = 0; i < arr.Length; i++)
{
for (int j = 0; arr[i] % divisor == 0; j++)
{
answer[j] = arr[i];
break;
}
Array.Sort(answer);
}
if (count == 0)
{
answer = new int[count + 1];
answer[count] = -1;
}
return answer;
}
}
다른사람의 풀이
using System.Collections.Generic;
public class Solution
{
public int[] solution(int[] arr, int divisor)
{
var list = new List<int>();
if (divisor != 1)
{
foreach (var v in arr)
{
if (v % divisor == 0)
list.Add(v);
}
if (list.Count == 0)
list.Add(-1);
}
else
{
list.AddRange(arr);
}
list.Sort();
return list.ToArray();
}
}
오늘의 회고
해야 할 일
- 1. 개인과제 완성하기