본문 바로가기
4.2 프로그래머스 & 코테문제/Java 풀이

[Java/프로그래머스 LV.0] 코딩 기초 트레이닝/배열 만들기 2

by Dohi._. 2024. 6. 8.
728x90

 

링크

 

문제설명


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

제한사항

  • 1 ≤ l  r ≤ 1,000,000

풀이

list를 사용하여 해결하였습니다.

1. i가 5의 배수일 경우만 코드를 실행하도록 하였습니다 

2. i를 문자열로 변환하였고 문자열에 0혹은 5가 아닌 다른 숫자가 존재할 경우엔 리스트에 추가하지 않습니다.

3. 리스트에 추가된 숫자를 직접만든 list_array를 이용하여 list로 반환합니다.

 

list_array함수 

1. 입력받은 리스트의 길이가 0일경우 [-1]을 반환합니다.

2. 길이가 0이아닌 경우 리스트의 길이만큼 배열의 길이를 만듭니다.

3. 순서에 맞게 대입을 하고 마무리가되면 배열을 반환합니다.

 

import java.util.ArrayList;

class Solution {
    public int[] solution(int l, int r) {
        ArrayList<Integer> answer_list = new ArrayList<Integer>();
       for(int i = l; i < r + 1; i++) {
           if(i%5 != 0){
               continue;
           }
           String strNum = String.valueOf(i);
           boolean count = true;
           for(int j = 0; j < strNum.length(); j++) {
                if(strNum.charAt(j) != '0' && strNum.charAt(j) != '5') {
                    count= false;
                    break;
                }
            }
           if(count ==true)
               answer_list.add(i);
        }
        return list_array(answer_list);
    }
      
 
    
    public int[] list_array(ArrayList<Integer> list){
        if(list.size()==0){
            int[] i = {-1};
            return i;
        }
        int[] i = new int[list.size()];
        for(int k=0;k<list.size();k++){
            i[k]=list.get(k);
        }
        return i;
    }
}

 

 

들어간 메소드 정리

String.valueOf( T ) : 괄호 안의 객체(T)를 String 객체로 변환시z킴 

String.length() :  문자열의 길이를 반환 (int)

String.charAt(int i) :  

 

list.size() :리스트의 길이를 반환 

list.get(int i) : 인덱스 i의 값을 반환

list.add(T) : 괄호안의 객체(T)를 리스트에 삽입 

728x90

댓글