devFancy BE Developer

[Programmers] 12939. 최댓값과 최솟값

2023-02-03
devfancy

문제 링크

성능 요약

메모리: 83.7 MB, 시간: 28.33 ms - Answer Code1

메모리: 87.1 MB, 시간: 9.33 ms - Answer Code2

구분

코딩테스트 연습 > 연습문제

Answer Code1(23.02.03)

import java.util.*;

class Solution {
    public String solution(String s) {
        String answer = "";
        ArrayList<Integer> arr = new ArrayList<Integer>();
        String [] str = s.split(" ");

        for(int i = 0; i < str.length; i++) {
            arr.add(Integer.parseInt(str[i]));
        }

        answer = "" + Collections.min(arr) + " " + Collections.max(arr);

        return answer;
    }
}

Answer Code2(23.02.03)

import java.util.*;

class Solution {
    public String solution(String s) {
        int max, min, n;
        String [] str = s.split(" ");
        
        max = min = Integer.parseInt(str[0]);
        
        for(int i = 0; i < str.length; i++) {
            n = Integer.parseInt(str[i]);
            if(max < n) max = n;
            if(min > n) min = n;
        }
        
        return min + " " + max;
    }
}

Review

  • 두 가지 풀이의 공통점은 공백을 기준으로 String 배열로 선언하는 것과 Integer.parseInt() 를 사용해서 String 을 Integer 로 바꾸는 것이다.

  • 첫번째 풀이는 Collections 를 활용해서 최소값과 최대값을 구하였다.

  • 두번째 풀이는 for문을 돌려서 그 안에 if문을 사용하여 max와 min을 직접 구하였다.

  • 메모리 용량 측면에서는 첫번째 풀이가 더 낮았으나, 시간적인 측면에서는 두번째 풀이가 3배이상 빠르다는 것을 확인할 수 있다.


Comments

Index