본문 바로가기

Computer Science/알고리즘 문제풀이

[알고리즘 문제풀이]#3 최댓값과 최솟값 [JAVA]

#3 최댓값과 최솟값


문제: https://programmers.co.kr/learn/courses/30/lessons/12939



1. 문제 설명


문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요.

예를들어 s가 1 2 3 4라면 1 4를 리턴하고, -1 -2 -3 -4라면 -4 -1을 리턴하면 됩니다.



2. 나의 코드


import java.util.*;

class Solution {
  public String solution(String s) {
      String answer = "";
      String [] sp = s.split(" ");
      int temp =0;
      int max = Integer.parseInt(sp[0]);;
      int min = Integer.parseInt(sp[0]);;

      for(int i =0 ; i < sp.length; i++) {
          temp = Integer.parseInt(sp[i]);
          if(max < temp)
              max = temp;
      }

      for(int i =0 ; i < sp.length; i++) {
          temp = Integer.parseInt(sp[i]);
          if(min > temp)
              min = temp;
      }

      answer += (String.valueOf(min)+" ");
      answer += String.valueOf(max);
      return answer;
  }
}


3. 다른 사람 코드

public class GetMinMaxString {
    public String getMinMaxString(String str) {
        String[] tmp = str.split(" ");
        int min, max, n;
        min = max = Integer.parseInt(tmp[0]);
        for (int i = 1; i < tmp.length; i++) {
                n = Integer.parseInt(tmp[i]);
            if(min > n) min = n;
            if(max < n) max = n;
        }

        return min + " " + max;

    }


4. 보완


min = max = something // 이렇게 연속 할당이 가능하다.



String.valueOf() 메소드를 이용하지 않고, int+"" 만 해줘도 문자열 변환이 가능하다.


결국, answer += String.valueOf(min)+" ";

   answer += String,valueOF(max);


==>


answer += min+" "+max; 


이렇게 한줄로도 정리할 수 있다.