🔎 문제

❗주의사항
l ~ r사이의 값중 0과 5만으로 구성된 숫자를 찾는 것이다.
사이의 값을 전부 반복문을 돌며 한 자리씩 나누어 0 혹은 5와 일치하는지 비교하고 일치한 경우 값을 배열에 저장해야 한다. 즉 배열의 길이가 가변적이므로 ArrayList를 사용해야 한다
⭕ 풀이
import java.util.*;
class Solution {
public int[] solution(int l, int r) {
int[] answer = {};
ArrayList<Integer> list = new ArrayList<>();
int a = 0;
for(int i=l ; i<=r ; i++){
String num = String.valueOf(i);
String[] numArr = num.split("");
int count = 0;
for(int j=0 ; j<numArr.length ; j++){
if(numArr[j].equals("0") || numArr[j].equals("5")){
count++;
}
}
if(count == numArr.length){
list.add(i);
}
}
answer = list.stream().mapToInt(Integer::intValue).toArray();
if(answer.length == 0){
answer = new int[]{-1};
return answer;
}
return answer;
}
}
import java.util.ArrayList;
class Solution {
public int[] solution(int l, int r) {
ArrayList<Integer> list = new ArrayList<>();
for (int i = 1; i < 64; i++) {
int num = Integer.parseInt(Integer.toBinaryString(i)) * 5;
if (l <= num && num <= r)
list.add(num);
}
return list.isEmpty() ? new int[] { -1 } : list.stream().mapToInt(i -> i).toArray();
}
}
📌 KEYPOINT
💗 느낀점