2023-08-31 TIL

SeongH·2023년 8월 31일
0

알고리즘 코드 카타

<서울에서 김서방 찾기>

using System;

public class Solution {
    public string solution(string[] seoul) 
    {
        string answer = "";
        int temp = Array.IndexOf(seoul, "Kim");
        answer = "김서방은 " + temp + "에 있다";
        return answer;

    }
}

배열의 특정값을 만족하는 첫번째 index 값 찾기!!
int indexA = Array.IndexOf(strArr, "A");

<나누어 떨어지는 숫자 배열>

-내 풀이-

using System;

public class Solution 
{
    public int[] solution(int[] arr, int divisor) 
    {
        int[] answer = new int[arr.Length];
        int temp = 0;
        
        for(int i = 0; i < arr.Length; i++)
        {
            if(arr[i]%divisor == 0)
            {
                answer[temp] = arr[i];
                temp++;
            }
        }
        
        if(temp == 0)
        {
            return new int[] {-1};
        }
        else
        {
            Array.Resize(ref answer, temp);// 배열의 크기가 arr.Length로 설정 되어있으므로 그것보다 작을 경우를 위해서 배열의 크기를 다시 정해준다.
            Array.Sort(answer);
            return answer;
        }

        
        
        return answer;
    }
}

-다른 사람의 풀이-

using System.Collections.Generic;

public class Solution {

    public int[] solution(int[] arr, int divisor) {
    
    	// result 리스트를 만들어 준다.
        List<int> result = new List<int>();
        
        // 입력받은 arr의 길이만큼 for문을 돌면서 arr의 원소하나하나를 확인
        for(int i=0; i<arr.Length; i++)
        {
        	// arr의 원소 중 divisor로 나누어 떨어지면
            if(arr[i]%divisor == 0)
            {
            	// 아까 만든 리스트의 원소로 넣어준다.
                result.Add(arr[i]);
            }
        }
        
        // 만약 나눠떨어진게 없어서 리스트가 0개라면 -1을 출력
        if (result.Count == 0)
            return new int[] { -1 };
            
        // result리스트를 오름차순으로 정렬해준다.
        result.Sort();
        
        // 배열을 반환해달라고 했으므로 ToArray()를 써서 배열로 리턴함
        return result.ToArray();
    }
}
  • 리스트를 사용하는 경우와 배열을 사용하는 경우:
    데이터
    의 순서를 바꿔가며 삽입 또는 삭제 연산을 많이 사용 할때는 리스트, 배열의 끝에만 삽입, 삭제를 하고 빠르게 값에 접근해야 할 일이 많을 때는 배열을 사용하는 것이 좋다.

  • Array.Resize() 를 통해서 배열의 크기를 다시 설정 할 수 있다.!

profile
개발자 꿈나무

0개의 댓글