반응형
💡array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
‼️ arr은 자연수를 담은 배열입니다.
‼️ 정수 i, j에 대해 i ≠ j 이면 arr[i] ≠ arr[j] 입니다.
‼️ divisor는 자연수입니다.
‼️ array는 길이 1 이상인 배열입니다.
🖥 나의 풀이
using System.Collections.Generic;
public class Solution {
public int[] solution(int[] arr, int divisor) {
List<int> answerList = new List<int>();
for (int i = 0; i < arr.Length; ++i) {
if (arr[i] % divisor == 0) {
answerList.Add(arr[i]);
}
}
if (answerList.Count == 0) {
answerList.Add(-1);
}
else {
// 오름차순 정렬
answerList.Sort();
}
return answerList.ToArray();
}
}
- 개인적으로 foreach 문보다 for 문이 좀 익숙해서 for문을 사용했는데, foreach문과 비교해서 foreach가 더 낫다면 바꾸는 연습을 해야겠다.
- 이번에도 배열이 아닌 리스트를 사용했다.
🖥 다른 풀이
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();
}
}
📚 참고 자료
- 리스트 요소 수 구하기
https://docs.microsoft.com/ko-kr/dotnet/api/system.collections.generic.list-1.count?view=net-5.0
🗒 출처: 프로그래머스
반응형
'코딩테스트 연습 > C#' 카테고리의 다른 글
[C#/알고리즘] 평균 구하기 (0) | 2021.06.02 |
---|---|
[C#/알고리즘] x만큼 간격이 있는 n개의 숫자 (0) | 2021.06.01 |
[C#/알고리즘] K번째 수 찾기 (0) | 2021.06.01 |
[C#/알고리즘] 서울에서 김서방 찾기 (0) | 2021.05.23 |
[C#/알고리즘] 두 개 뽑아서 더하기 (0) | 2021.05.23 |