
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};)
'연습문제 > 프로그래머스, 기초 트레이닝' 카테고리의 다른 글
| 콜라츠 수열 만들기 (0) | 2023.10.23 |
|---|---|
| 카운트 업(Stream 활용하기) (1) | 2023.10.23 |
| 수열과 구간 쿼리 4 (반복문의 초기치 설정..) (0) | 2023.10.23 |
| 수 조작하기2 (switch 문 사용하기) (0) | 2023.10.22 |
| 수 조작하기1 ( switch문) (0) | 2023.10.22 |