반응형
풀이
- 해당 접근 방법은 l과 r 사이의 숫자 중 0 또는 5로 나누어 떨어지는 숫자를 찾고
- 해당 숫자를 String으로 변경 한 다음
- charAt()으로 해당 인덱스의 문자가 0과 5로 이루어져 있는지 확인 후 아니라면 state 변경과 탈출
- 이후 state에 따라 값을 result에 추가하고
- 마지막으로 result가 비어있는지 확인 후 값을 반환하여 해결
import java.util.*;
class Solution {
public int[] solution(int l, int r) {
ArrayList<Integer> result = new ArrayList<>();
for (int i=l; i<=r; i++) {
if (i%5==0 || i%10==0) {
String s_num = String.valueOf(i);
boolean state = true;
for (int idx=0; idx<s_num.length(); idx++) {
char n = s_num.charAt(idx);
if (n != '0' && n != '5') {
state = false;
break;
}
}
if (state) result.add(i);
}
}
return (result.isEmpty())? new int[] {-1} : result.stream().mapToInt(Integer::intValue).toArray();
}
}
'알고리즘' 카테고리의 다른 글
[프로그래머스, 자바] 유한소수 판별하기 (0) | 2024.03.20 |
---|---|
[프로그래머스, 자바] 문자열 밀기 (0) | 2024.03.19 |
[프로그래머스, 자바] 특이한 정렬 (1) | 2024.03.19 |
[프로그래머스, 자바] 배열 자르기 (0) | 2024.03.16 |
[프로그래머스, 자바] 배열 뒤집기, 문자열 뒤집기 (0) | 2024.03.16 |