[ 문 제 ]
max 메서드 작성
기능 : 주어진 int형 배열의 값 중 가장 큰 값을 반환.
만일 주어진 배열이 null이거나 크기가 0이면, -999999를 반환.
반환타입 : int
매개변수 : int[] arr - 최대값을 구할 배열
class Exercise6_23
{
/*
(1) max메서드를 작성하시오.
*/
public static void main(String[] args)
{
int[] data = {3,2,9,4,7};
System.out.println(java.util.Arrays.toString(data));
System.out.println("최대값:"+max(data));
System.out.println("최대값:"+max(null));
System.out.println("최대값:"+max(new int[]{})); // 크기가 0인 배열
}
}
[ 나의 풀이 ]
class exercise
{
public static int max(int[] data){
if( data == null || data.length == 0)
return -999999;
for (int i = 0; i<data.length; i++){
int maxValue = data[0];
if(data[i]<=data[i+1]){
maxValue = data[i+1];
return maxValue;
}
}
return data[0];
}
public static void main(String[] args)
{
int[] data = {3,2,9,4,7};
System.out.println(java.util.Arrays.toString(data));
System.out.println("최대값:"+max(data));
System.out.println("최대값:"+max(null));
System.out.println("최대값:"+max(new int[]{})); // 크기가 0인 배열
}
}
[ 개선점 ]
----------------------------------------나의 코드------------------------------------------ for (int i = 0; i<data.length; i++){
int maxValue = data[0];
if(data[i]<=data[i+1]){
maxValue = data[i+1];
return maxValue;
}
}
return data[0];
}-----------------------------------------------------------------------------------------
--------------------------------------개선 된 코드---------------------------------------
int max = arr[0]; // 배열의 첫 번째 값으로 최대값을 초기화 한다.
for(int i=1; i< arr.length;i++) { // 배열의 두 번째 값부터 비교한다.
if(arr[i] > max)
max = arr[i];
}
return max;
-----------------------------------------------------------------------------------------
[ 깨달은 점 ]
1. 전달받는 매개변수의 이름 값은 달라도 됨.
메인메서드에서 data값을 던져주지만
max메서드에서는 int[] arr로 받고 있음.
'프로그래밍 > 코드분석' 카테고리의 다른 글
[KATA] Triangular Treasure(삼각수) (0) | 2017.01.26 |
---|---|
자바의 정석 연습문제 7-22 (0) | 2016.08.21 |
자바의 정석 연습문제 6-4 (0) | 2016.08.16 |
자바의 정석 연습문제 6-2 (0) | 2016.08.16 |
자바의 정석 연습문제 9-4 (0) | 2016.08.13 |