java/자바의 정석 연습문제 오답노트

[객체지향 프로그래밍1] 연습문제 6-20

각시탈코더 2022. 12. 28. 12:29

문제

 

정답

package practice;

public class Exercise6_20 {
	public static int max(int[] arr) {
		//배열의 크기가 null 혹은 0인 경우
		if(arr==null || arr.length ==0)
			return -999999;
		
		//배열의 크기가 null, 0 이 아닌 경우
		int max = arr[0];
		
		for(int i=1; i<arr.length; i++) {
			if(arr[i] > max) {
				max = arr[i];
			}
		}
		
		return 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[] {}));
	}

}

 

1.문제 핵심 key

  • 배열을 활용해 최대값을 어떻게 표현할 것인가?
  • if문의 조건을 어떻게 나눌것인가?

2.나의 오답원인

  • 문제에서 제시한 두 번째 조건(주어진 배열이 null이거나 0이면 -99999를 반환하라)을 if문으로 어떻게 표현할 지 생각 못했다.

//배열의 크기가 null 혹은 0인 경우
if(arr==null || arr.length ==0)
return -999999;