Solution 1) 내 풀이_ 없음

반복문과 형변환 만으로 시도했으나 실패

Solution 2) 다른 사람의 풀이
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


class Solution {
    public static boolean containsNum (int number) {
        while (number > 0) {
            int digit = number % 10;
            if (digit != 0 && digit != 5) {
                return false;
            }
            number /= 10;
        }
        return true;
    }
    
    public int[] solution(int l, int r) {
        List<Integer> arr = new ArrayList<>();

        for (; l <= r; l++) {
            if (containsNum(l)) {
                arr.add(l);
            }
        }
    
        int[] answer = new int[arr.size()];
        
        if (arr.isEmpty()) {
            answer = new int[]{-1};
        } else {
            for (int i = 0; i < arr.size(); i++) {
                answer[i] = arr.get(i);
            }
        }
        return answer;
    }
}
5와 0이 들어있는 contains 메서드를 만들어 활용,

List 타입 arr에 ArrayList 객체를 인스턴스 시킴.
(다형성과 유연성 때문, 컬렉션 사용시 인터페이스 타입을 사용하는 것이 좋은 습관이라함)

arr안에 요소가 없을 경우 -1을 반환해야하는데 이때 배열을 새로 만드는 방식 참조하기
(answer = new int[]{-1};)

 

+ Recent posts