반응형
문제 설명
정수 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] |
입출력 예 설명
입출력 예 #1
5 이상 555 이하의 0과 5로만 이루어진 정수는 작은 수부터 5, 50, 55, 500, 505, 550, 555가 있습니다. 따라서 [5, 50, 55, 500, 505, 550, 555]를 return 합니다.
입출력 예 #2
10 이상 20 이하이면서 0과 5로만 이루어진 정수는 없습니다. 따라서 [-1]을 return 합니다.
문제 풀이
-> 5 ~ 555 까지의 모든 수에서 각 자리에 5 또는 0 이 아닌 수가 있으면 넘기고, 5와 0으로만 이루어진 수라면 배열에 담아서 answer에 넣어주면 된다. 배열에 담을 때, count도 세어주어서 answer 변수를 초기화하는데 사용한다.
코드
import java.util.ArrayList;
class Solution {
public int[] solution(int l, int r) {
ArrayList<Integer> answerT = new ArrayList<>();
int count = 0;
for(int i=l;i<r+1;i++){
String temp = String.valueOf(i);
String[] list = temp.split("");
int test = 1;
for(int j=0;j<list.length;j++){
if(!list[j].equals("0")&&!list[j].equals("5")){ // 각 자리가 0 이나 5가 아닌 다른 수를 포함하는지 확인
test=0;
break;
}
}
if(test==1){
count++;
answerT.add(i);
}
}
if(answerT.isEmpty()){ // 배열에 어떠한 값도 존재하지 않으면 -1 을 담은 배열 리턴
return new int[]{-1};
} else {
int[] answer = new int[count];
for(int i=0; i<count; i++){
answer[i] = answerT.get(i);
}
return answer;
}
}
}
반응형
'Algorithm > Programmers 입문' 카테고리의 다른 글
[프로그래머스 코딩기초 트레이닝] 배열 만들기4(JAVA) (0) | 2023.10.18 |
---|---|
[프로그래머스 코딩기초 트레이닝] 콜라츠 수열 만들기(JAVA) (0) | 2023.10.12 |
[프로그래머스 입문] 평행 (JAVA) (0) | 2023.08.16 |
[JAVA] 유클리드 호제법 - 최소공약수 구하기 (0) | 2023.06.29 |
[JAVA] 피자 나눠 먹기(2) (0) | 2023.04.26 |