문제
파라미터로 정수 배열 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;
}
}