성능 요약
메모리: 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배이상 빠르다는 것을 확인할 수 있다.