처음 풀이
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를 사용하는 것이 압도적으로 속도가 빠르다.
'자료구조 & 알고리즘 > 문제풀이' 카테고리의 다른 글
두 개 이하로 다른 비트 - 프로그래머스 (Java, Level 2) (0) | 2022.03.02 |
---|---|
모음 사전 - 프로그래머스 (Java, Level 2) (0) | 2022.02.25 |
구명보트 - 프로그래머스 (Java, level 2) (0) | 2022.02.18 |
큰 수 만들기 - 프로그래머스 (Java, Level 2) (0) | 2022.02.18 |
체육복 - 프로그래머스 (Java, Level 2) (0) | 2022.02.18 |
댓글