본문 바로가기
자료구조 & 알고리즘/문제풀이

최댓값과 최솟값 - 프로그래머스 (Java, Level 2)

by 넬준 2022. 2. 21.

 

처음 풀이

 

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
class Solution {
    public String solution(String s) {
    
        StringBuilder sb = new StringBuilder();
        StringTokenizer st = new StringTokenizer(s);
        List<Integer> list = new ArrayList<>();

        while(st.hasMoreTokens()) {
            list.add(Integer.valueOf(st.nextToken()));
        }//while end

        //리스트 정렬
        Collections.sort(list);
        //첫 요소 마지막 요소
        sb.append(list.get(0)).append(" ").append(list.get(list.size()-1));

        return sb.toString();
    }
}

 

다른 풀이

 

public String solution(String s) {
        
        StringBuilder sb = new StringBuilder();
        
        	//split();
		String[] strArr = s.split(" ");
		
		int min, max;
		min = max = Integer.valueOf(strArr[0]);
		
		for(int i=0; i<strArr.length; i++) {
			int num = Integer.valueOf(strArr[i]);
			
			if(min>num) min = num;
			if(num>max) max = num;
		}//for end
        
        sb.append(min).append(" ").append(max);
        return sb.toString();
    }

 

- string.split()을 사용해 String[]로 변환

- sort()를 굳이 사용하지 않고 최소, 최대값 구하는 알고리즘!

- 문자열을 합칠 땐 StringBuilder를 사용하는 것이 압도적으로 속도가 빠르다.

Integer.valueOf() vs Integer.parseInt()

댓글