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
public class Exercise6_20 {
 
//    주어진 int형 배열의 값 중에서 제일 큰 값을 반환한다.
//    만약 주어진 배열이 null이거나 크기가 0인 경우, -999999를 반환한다.
 
    static int max(int[] arr) {
        int res = -999999;
        if (arr == null || arr.length == 0) {
            return res;
        } else {
            for (int i = 0; i < arr.length - 1; i++) {
                res = arr[i] < arr[i + 1] ? arr[i + 1] : arr[i];
                for (int j = 0; j < arr.length - 1; j++) {
                    if (res < arr[j]) {
                        res = arr[j];
                    } else {
                        continue;
                    }
                }
            }
            return res;
        }
    }
 
    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)); // 최대값 : 9
        System.out.println("최대값 : " + max(null)); // 최대값 : -999999
        System.out.println("최대값 : " + max(new int[]{})); // 최대값 : -999999
    }
}
cs
 

 

 

고수들의 정답은 매우 간단할 것 같은데, 내가 쓰고나니 너무 지저분하다.

느낌적인 느낌으로 메서드 안에 분명 불필요한 코드가 있을 것만 같다.

노트에 순서를 적어가며 짠 건데, 사실 노트에 끄적인대로 하니 잘 안돼서

이리저리 뭘 더 넣어보다가 저 코드가 되었다.

학원 강사님이 말씀하시기를

아예 실행조차 안되거나 엉뚱한 값을 내놓는거보다는

보기에 더러워도 일단 실행이 되고 값이 올바르게 나오는 것이 훨씬 낫다고 하셨다.

(나같이 코드 쓰는 사람에게 이 말이 얼마나 위로가 되는지 모르겠다...ㅠㅠ)

일단 실행이 되는 지저분한 코드는 해두었으니

이걸 어떻게 이쁘게 다듬어야할지 고민해봐야겠다.