본문 바로가기

코딩테스트

[자바/Java] 프로그래머스 코딩 기초 트레이닝 : 배열 만들기 2

 

배열 만들기 2

 

❓ 문제 설명

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

 

❕ 입출력 예

l	r	result
5	555	[5, 50, 55, 500, 505, 550, 555]
10	20	[-1]

 

 

🗝️ 문제 풀이

import java.util.ArrayList;
import java.util.Collections;

class Solution {
    public static int[] solution(int l, int r) {
    
        ArrayList<Integer> list = new ArrayList<>();

        for (int i = l; i <= r; i++) {
            if (check(i)) { // 0,5 체크 
                list.add(i);
            }
        }

        if (list.isEmpty()) {
            return new int[] { -1 };
        }

        Collections.sort(list); // 오름차순 정렬
        int[] resultArray = new int[list.size()];
        for (int i = 0; i < list.size(); i++) {
            resultArray[i] = list.get(i);
        }

        return resultArray;
    }

    private static boolean check(int number) {
        String strNumber = Integer.toString(number); 
        return strNumber.matches("[05]+"); 
    }
}