본문 바로가기

자바

나누어 떨어지는 숫자배열

반응형

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package javaalgorithm;
 
import java.util.Arrays;
 
class Divisible {
    public int[] divisible(int[] array, int divisor) {
        int count = 0;
        for(int i=0;i<array.length;i++){
            if(array[i] % divisor == 0) count++;
        }
        //ret에 array에 포함된 정수중, divisor로 나누어 떨어지는 숫자를 순서대로 넣으세요.
        int[] ret = new int[count];
        
        int j=0;
        
        for(int i=0;i<array.length;i++){
            if(array[i] % divisor == 0){
                ret[j++= array[i];
            }
        }
        
        return ret;
    }
    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void main(String[] args) {
        Divisible div = new Divisible();
        int[] array = {59710};
        System.out.println( Arrays.toString( div.divisible(array, 5) ));
    }
}
 
cs


똑같은 수행을 반복하는게 마음에 걸렸지만 이 방법밖에 생각이 나지 않아서 이렇게 풀었다.

처음 for문은 array에 divisor로 나누어 떨어지는 값이 몇개인지를 세는 구문이다. 그 값을 ret의 배열 길이로 주고 다시 for문을 이용하여 ret에 array가 divisor로 나누어 떨어지는 값을 저장한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package javaalgorithm;
 
import java.util.Arrays;
 
class Divisible {
    public int[] divisible(int[] array, int divisor) {
        int count = 0;
        for(int i=0;i<array.length;i++){
            if(array[i] % divisor == 0) count++;
        }
        //ret에 array에 포함된 정수중, divisor로 나누어 떨어지는 숫자를 순서대로 넣으세요.
        int[] ret = new int[count];
        
        int j=0;
        
        for(int i=0;i<array.length;i++){
            if(array[i] % divisor == 0){
                ret[j++= array[i];
            }
            if(j == count) break;
        }
        
        return ret;
    }
    // 아래는 테스트로 출력해 보기 위한 코드입니다.
    public static void main(String[] args) {
        Divisible div = new Divisible();
        int[] array = {59710};
        System.out.println( Arrays.toString( div.divisible(array, 5) ));
    }
}
 
cs


사소한 부분이지만 좋다고 생각한 부분이다.

if문을 이용해서 나누어 떨어지는 값을 모두 찾았다면 더이상 진행 할 필요없이 for문을 빠져나가는 방법이다.

배열이 길어지고 뒤에 저장하지 않아도 되는 값들이 많이 있다면 필요성이 커질 법한 구문이다.

'자바' 카테고리의 다른 글

가운데 글자 가져오기  (0) 2016.11.17
시저암호  (0) 2016.11.17
문자열 내림차순으로 배치하기  (0) 2016.11.14
삼각형 출력하기  (0) 2016.11.14
String으로 입력받은 값의 최대,최소 구하는 문제  (0) 2016.11.13