프로그래머스 Lv.0 배열 만들기 2

문제 설명
정수 l과 r이 주어졌을 때,
l이상 r이하의 정수 중에서
숫자 "0"과 "5"로만 이루어진 모든 정수를
오름차순으로 저장한 배열을 return하라.
1 ≤ l ≤ r ≤ 1,000,000
l | r | result |
5 | 555 | [5, 50, 55, 500, 505, 550, 555] |
10 | 20 | [-1] |
** 풀이 방법
l부터 r까지의 반복문을 돌리고,
정수를 문자열로 반환한다.
for (int i=l; i<=r; i++) {
String s = Integer.toString(i);
....
}
이중 반복문으로
문자열로 변환한 정수의 길이만큼 반복해서
각 자리수에 0과 5가 있는지 판별해야 한다.
0과 5가 둘 다 없다면
flag를 true로 저장해서 반복문을 빠져나온다.
flag가 false일때만 answer에 i를 저장시킨다.
for (int i=l; i<=r; i++) {
String s = Integer.toString(i);
boolean flag = false;
for (int j=0; j<s.length(); j++) {
if (s.charAt(j) != '5' && s.charAt(j) != '0') {
flag = true;
break;
}
}
if (!flag) answer.add(i);
}
만약 5와 0으로 된 숫자가 없다면
-1을 저장한다.
if (answer.size()==0) answer.add(-1);
<> 전체 코드 </>
import java.util.*;
class Solution {
public List<Integer> solution(int l, int r) {
List<Integer> answer = new ArrayList<>();
for (int i=l; i<=r; i++) {
String s = Integer.toString(i);
boolean flag = false;
for (int j=0; j<s.length(); j++) {
if (s.charAt(j) != '5' && s.charAt(j) != '0') {
flag = true;
break;
}
}
if (!flag) answer.add(i);
}
if (answer.size()==0) answer.add(-1);
return answer;
}
}
반응형
'개발로그 > 알고리즘' 카테고리의 다른 글
프로그래머스 Lv.1 문자열 내 마음대로 정렬하기 (0) | 2023.08.03 |
---|---|
프로그래머스 Lv.0 치킨 쿠폰 (0) | 2023.08.03 |
프로그래머스 Lv.0 배열 만들기 4 (0) | 2023.07.31 |
프로그래머스 Lv.0 배열 만들기 6 (0) | 2023.07.31 |
프로그래머스 Lv.0 특이한 정렬 (0) | 2023.07.30 |
댓글