DEV/└ JAVA EX

두 원소의 차 중 최댓값 구하기

devvnn 2021. 12. 20. 20:42
문제
파라미터로 정수 배열 intArray를 받고, 두 원소의 차이 중 가장 큰 값을 리턴해주는 메소드 greatestDifference를 쓰세요.
리턴값의 자료형은 int입니다.
만약 원소 개수가 2개보다 작으면 0을 리턴해줍니다.
결과값

 

9
13
3
0
8
0
 

 

 

풀이 및 답
GreatestDifferenceFinder 클래스

 

public class GreatestDifferenceFinder {
    int greatestDifference(int[] intArray) {
        // 배열의 수가 2개 미만이면 0을 리턴
        if(intArray.length < 2) {
            return 0;
        }
        
        // 최댓갑, 최솟값 구하기
        int max = intArray[0];
        int min = intArray[0];
        
        for(int i = 0; i < intArray.length; i++) {
            if(intArray[i] > max) {
                max = intArray[i]; 
            }
            if(intArray[i] < min) {
                min = intArray[i];
            }
        }
        // 최대 차 리턴
        return max - min;
    }
}
 

 

 

Main 클래스

 

public class Main {
    public static void main(String[] args) {
        GreatestDifferenceFinder finder = new GreatestDifferenceFinder();

        // 테스트 1
        int[] testArray1 = {-2, 7, 3};
        System.out.println(finder.greatestDifference(testArray1));

        // 테스트 2
        int[] testArray2 = {8, 3, 14, 1};
        System.out.println(finder.greatestDifference(testArray2));

        // 테스트 3
        int[] testArray3 = {4, 2, 3, 1};
        System.out.println(finder.greatestDifference(testArray3));

        // 테스트 4
        int[] testArray4 = {};
        System.out.println(finder.greatestDifference(testArray4));

        // 테스트 5
        int[] testArray5 = {1, 2, -3, 4, 5};
        System.out.println(finder.greatestDifference(testArray5));

        // 테스트 6
        int[] testArray6 = {1};
        System.out.println(finder.greatestDifference(testArray6));
    }
}
 

 

 


for-each 구문을 사용해서 풀어보기

 

public class GreatestDifferenceFinder {
    int greatestDifference(int[] intArray) {
        if (intArray.length < 2) {
            return 0;
        }

        int max = intArray[0];
        int min = intArray[0];

        for (int i = 0; i < intArray.length; i++) {
            if (max < intArray[i]) {
                max = intArray[i];
            }

            if (min > intArray[i]) {
                min = intArray[i];
            }
        }
        return max - min;
    }
}