코린이의 소소한 공부노트

[LeetCode/Easy] 728. Self Dividing Numbers 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 728. Self Dividing Numbers

무지맘 2022. 12. 6. 19:50

1. Input

1) int 변수 left

2) int 변수 right

 

2. Output

1) left 이상 right 이하의 수 중에서 self-dividing number를 담은 int 배열

2) self-dividing number란 그 수가 각 자리수로 모두 나누어떨어지는 수를 말한다.

 

3. Constraint

1) 1 <= left <= right <= 104

 

4. Example

Input: left=10, right=15-> Output: {11,12,15}

설명:

- 1010으로 나눈다 -> 0으로 나눌 수 없으므로 pass

- 1111로 나눈다 -> 나머지는 0, 0이므로 배열에 포함

- 1212로 나눈다 -> 나머지는 0, 0이므로 배열에 포함

- 1313으로 나눈다 -> 나머지는 0, 1이므로 pass

- 1414로 나눈다 -> 나머지는 0, 2이므로 pass

- 1515로 나눈다 -> 나머지는 0, 0이므로 배열에 포함

- 따라서 {11,12,15}를 반환한다.

 

5. Code

1) 첫 코드(2022/07/25)

List<Integer> list = new ArrayList();
List<Integer> output = new ArrayList();

for(int i=left ; i<=right ; i++){
    int num = i;
    boolean b = true;
    while(num>=1){
        list.add(num%10);
        num /= 10;
    }
    for(int j=0 ; j<list.size() ; j++)
        if(list.get(Integer.valueOf(j))==0 || i%list.get(Integer.valueOf(j))!=0){
            b = false; break;
        }
    if(b) output.add(i);
    list.clear();
} // for i

return output;