[알고리즘 문제풀이] 최대값과 최소값
문제 및 답안 출처
http://www.tryhelloworld.co.kr
문제
getMinMaxString 메소드는 String형 변수 str을 매개변수로 입력받습니다.
str에는 공백으로 구분된 숫자들이 저장되어 있습니다.
str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 String을 반환하는 메소드를 완성하세요.
예를들어 str이 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
public class GetMinMaxString {
public String getMinMaxString(String str) {
return "";
}
public static void main(String[] args) {
String str = "1 2 3 4";
GetMinMaxString minMax = new GetMinMaxString();
//아래는 테스트로 출력해 보기 위한 코드입니다.
System.out.println("최대값과 최소값은?" + minMax.getMinMaxString(str));
}
}
다른 사람의 답
import java.util.Arrays;
public class GetMinMaxString {
public String getMinMaxString(String str) {
String[] array = str.split(" ");
int[] iarray = new int[array.length];
for(int i=0;i<iarray.length;i++){
iarray[i] = Integer.parseInt(array[i]);
}
Arrays.sort(iarray);
String result = iarray[0] +" "+iarray[iarray.length-1];
return result;
}
public static void main(String[] args) {
String str = "1 2 3 4";
GetMinMaxString minMax = new GetMinMaxString();
//아래는 테스트로 출력해 보기 위한 코드입니다.
System.out.println("최대값과 최소값은?" + minMax.getMinMaxString(str));
}
}
split을 몰라서 쩔쩔 맨 문제입니다;; 결국 해결을 못하고 검색을 통해서 해당 기능을 알게 됐습니다.
'저런 문자열을 어떻게 숫자로 바꾸지?'하다가 시간을 엄청 보냈어요;;;
지금이라도 알게 돼서 다행입니다. 그리고 Arrays.sort() API를 사용해서 sort했는데 이 부분을 다른 sort를 이용해서 구현한다면 더 좋은 성능을 낼 수 있지 않을까 생각이 들었습니다. 저는 select sort쓸려고 했는데 그러면 성능은 더 안 좋아졌겠죠 ㅎ... 갈 길이 먼 것 같습니다.
다시 책을 꺼내서 sort 해결 알고리즘 다시 공부해야겠네요