[C#] 배열 만들기2

Connected Brain·2025년 6월 20일

코딩 테스트

목록 보기
5/67

배열 만들기2

문제 설명

정수 l과 r이 주어졌을 때, l 이상 r이하의 정수 중에서 숫자 "0"과 "5"로만 이루어진
모든 정수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
만약 그러한 정수가 없다면, -1이 담긴 배열을 return 합니다.

풀이

public class CreatArray
{   
    public int[] Solution(int l, int r) {
        
        List<int> availableAnswers = new List<int>();

        for (int i = l; i <= r; i++)
        {
            string i_str = i.ToString();
            
            bool isAvailable = true;

            foreach (char c in i_str)
            {
                if (c != '0' && c != '5')
                {
                    isAvailable = false;
                    break;
                }
            }
            
            if(isAvailable)
                availableAnswers.Add(i);
        }
        
        int[] answer = availableAnswers.ToArray();

        if (answer.Length == 0)
        {
            answer = new int[] { -1 };
        }
        
        return answer;
    }
}
  • lr 범위에서 배열에 포함될 수 있는 숫자를 담을 List<int> availableAnswers를 선언하였다.
  • 이후 반복문을 lr 범위에서 돌면서 해당 리스트에 포함될 수 있을지 없을지 여부를 판단하였다.
  • 0과 5로만 이루어진 수의 인수분해 등의 방법을 사용했을 때의 공통 요소를 찾을 수 없어 해당 숫자를 string으로 변경한 뒤 해당 string값을 한 글자씩 '0'과 '5'와 같은지 여부를 판단하도록 하였다.
  • 모든 글자를 체크하였을 때 '0'과 '5'만 포함하고 있다면 availableAnswers에 추가하였고, 마지막에 해당 ListToArray()를 통해 배열로 변경해 답을 반환하도록 하였다.
  • 해당 배열이 비어있을 경우 -1로 이루어진 배열을 반환하도록 하기 위해 검사 과정을 추가하였다.

0개의 댓글