프로그래밍언어공부/Java

[알고리즘 문제풀이] 최대값과 최소값

무의욕자 2017. 6. 21. 10:55

문제 및 답안 출처

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 해결 알고리즘 다시 공부해야겠네요