최댓값과 최솟값

문제정의


공백으로 구분된 문자열에서 최댓값과 최솟값을 찾는 문제이다.

문제풀이


전체 코드는 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package level2;

public class MaxMin {

//프로그래머스 문제풀이 level2 최댓값과 최솟값
public static void main(String[] args) {
String s = "1 2 3 4";
String[] arr = s.split(" ");
int max = -2000000000;
int min = 2000000000;
for(String str : arr)
{
int i = Integer.parseInt(str);
if(i > max)
max = i;
if(min > i)
min = i;
}
StringBuilder buff = new StringBuilder();
buff.append(min);
buff.append(" ");
buff.append(max);

System.out.println(buff.toString());
}

}
2단계라 테스트케이스가 int를 넘어가지 않을 것이라 생각했다. 그래서 max와 min에 int안에서 한계값에 가까운 큰 수를 할당한 뒤, 숫자들을 하나씩 보면서 max와 min값을 갱신하였다.

최종적인 시간복잡도는 문자열 s의 길이를 n이라 할 때, \(O(n)\)이다.

테스트