본문 바로가기
프로그래밍/JAVA

자바/프로그래머스) 배열 만들기2

by 끄아앙이 2023. 5. 24.
반응형

 

문제 설명

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

제한사항

1 ≤ l ≤ r ≤ 1,000,000

입출력 예

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

풀이

import java.util.ArrayList;

class Solution {
    public int[] solution(int l, int r) {
        
        ArrayList<Integer> answerlist=new ArrayList<>();
        
        for(int q=0;l<=r;l++){
            String a=Integer.toString(l);   //숫자 문자열로 바꾸기
            
            for(int i=0,count=0;i<a.length();i++){   //문자열만큼 반복
                if(a.charAt(i)=='5' || a.charAt(i)=='0'){ 
                    count++;   //5나 0이 있는 경우 카운트 증가
                }
                   if(count==a.length()){   //카운트와 문자열 길이가 똑같으면
                    answerlist.add(l);   answerlist에 숫자 l추가
                    q++;   
                }
            }
        }
        
        if(answerlist.size()==0) {   //answerlist 사이즈 0이면
        answerlist.add(-1);   //-1추가
        }
        
        int[] answer=new int[answerlist.size()];   //answer 배열 선언 후 초기화
        
        for(int i=0;i<answer.length;i++){
            answer[i]=answerlist.get(i);   //만든 배열에 answerlist 값 넣기
        }

        
        return answer;
    }
}

 

후기

처음에는 answer 배열에 바로 추가할려고 하다가 점점 복잡해져가고 한참 해맸다. 하지만 ArrayList 클래스를 사용함으로써 쉽게 해결할 수 있었다.