[프로그래머스 | LEVEL0 | JAVA] 배열 만들기 2

BIN·2024년 4월 5일

프로그래머스

목록 보기
14/24

🔎 문제

❗주의사항

  • 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

  • 사실 몰라서 답을 참고해서 제출했다.

💗 느낀점

profile
A new developer...Bin

0개의 댓글