반응형
문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 1 2 3 4라면 1 4를 리턴하고, -1 -2 -3 -4라면 -4 -1을 리턴하면 됩니다.
제한 조건
- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
생각
단지 최대 최소만 빠르게 구하면 된다! 그래서 2가지 방법을 생각해봤다. 하나는 Collections를 이용하는 것과 최대 최솟값을 직접 구하는 것!
Collections.max/min(int[] arr)을 넣어주면 알아서 최대 최소값이 나온다. 직접 구하려면 최대 최소값을 배열의 첫 번째 값이라고 가정하고 for문을 돌면서 만약 max,min 보다 크거나 작으면 그 값을 갱신해주면서 구하면 된다.
코드
1. Collections 이용
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
import java.util.*;
class Solution {
public String solution(String s) {
String answer = "";
ArrayList<Integer> arr = new ArrayList<Integer>();
String[] str = s.split(" ");
for(int i=0; i<str.length; i++) {
arr.add(Integer.parseInt(str[i]));
}
answer = "" + Collections.min(arr) + " " + Collections.max(arr);
return answer;
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
2. 직접 최대, 최소 구하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class Solution {
public String solution(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;
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
반응형
'알고리즘 > 코딩 - 프로그래머스' 카테고리의 다른 글
[Java][프로그래머스][Level 2] 최솟값 만들기 (0) | 2019.05.27 |
---|---|
[Java][프로그래머스][Level 2] 숫자의 표현 (0) | 2019.05.26 |
[Java][프로그래머스][Level 2] 다음 큰 숫자 (0) | 2019.05.24 |
[Java][프로그래머스][Level 2] 올바른 괄호 (0) | 2019.05.23 |
[Java][프로그래머스][Level 2] 쇠막대기 (0) | 2019.05.22 |