본문 바로가기
알고리즘 문제풀이

프로그래머스 최댓값과 최솟값

by y00ns00 2020. 5. 19.

문제 설명

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

제한 조건

  • s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.

 

sreturn

1 2 3 4 1 4
-1 -2 -3 -4 -4 -1

 

 

나의 풀이

문자열을 split 함수를 이용해 공백단위로 쪼개 String 형 배열에 저장하고

String 형의 배열을 Int 형 배열에 옮겨담아 정렬하여

맨앞의 수(제일작은수)를 앞에  마지막수(제일큰수)를뒤에 놓고  출력 

import java.util.Arrays;

class Solution {
    public String solution(String s) {
        
        
        String tmp[] = s.split(" ");
        int num[] = new int[tmp.length];
        for(int i = 0 ;i < tmp.length;i++) {
        	num[i] = Integer.parseInt(tmp[i]);
        }
        
        Arrays.sort(num);
        
        String min = Integer.toString(num[0]);
        String max = Integer.toString(num[num.length-1]);
        
        String answer = min+" "+max;
        
        
        return answer;
    }
}

2번째 풀이

다른 사람이 푼 방식을 참고로하여 다른방식으로 풀어보았다.

문자열을 split 함수를 이용해 공백단위로 쪼개 String 형 배열에 저장하는것 까지는 같지만

문자열을 정수형으로 바꾸는 for문을 돌면서 하나하나 max,min과 비교하며 

가장큰수와 가장 작은수를 찾아낸다.

 

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

댓글