ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 최댓값 최솟값 찾기
    알고리즘/프로그래머스 2020. 9. 22. 11:30

    문제 :

    문자열 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
    -1 -1 -1 -1

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

    package com.programmers;
    
    import java.util.Arrays;
    
    public class FindMinMaxNum {
    
    	public String solution(String s) {
    
    		/*
    		String answer = "";
    
    		String[] arr = s.split(" ");
    		int[] list = new int[arr.length];
    
    		for(int i=0; i<arr.length; i++) {
    			list[i] = Integer.valueOf(arr[i]);
    		}
    		
    		//Arrays.sort(list);
    		//answer = list[0] + " " + list[list.length-1];
    		
    		// 다른 사람 풀이
    		answer = Arrays.stream(list).min().getAsInt() + " " + Arrays.stream(list).max().getAsInt();
    		//         return Arrays.stream(arr).min().orElse(0) + " " + Arrays.stream(arr).max().orElse(0);
    		return answer;
    		*/
    		
    		String[] tmp = s.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;
    
    	}
    
    	public static void main(String[] args) {
    
    		FindMinMaxNum findNum = new FindMinMaxNum();
    		System.out.println(findNum.solution("-1 -2 -3 -4"));
    	}
    
    }
    

    Arrays.sort후 값 추출 시 평균 17.119ms
    Arrays.stream 사용 min, max 추출 시 평균 : 14.778ms
    값을 바로 비교 하는 경우 11.024ms

    단순하게 값을 바로 비교하는 경우에 시간이 제일 적게 걸렸다. 너무 어렶게 생각하지 말자!

     

    Arrays.stream에 min,max 기능도 있는지 몰랐는데 stream API를 공부해 봐야겠다.

    https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html#reduce-U-java.util.function.BiFunction-java.util.function.BinaryOperator-

    '알고리즘 > 프로그래머스' 카테고리의 다른 글

    N개의 최소공배수  (0) 2020.09.25
    숫자의 표현  (0) 2020.09.25
    카카오 - 데모 테스트  (0) 2020.09.11
    기능개발  (0) 2020.09.08
    예산  (0) 2020.09.07
Designed by Tistory.