첫 번째로 문자열을 잘라냅니다. 입력 값으로 들어오는 문자열을 잘 보면 값과 값 사이에 공백이 있습니다. String Class의 split() 메서드를 사용하고, 메서드 인자로 구분자를 넣어줍니다. 여기서는 “ ” 공백 문자열을 구분자로 이용하면 되겠죠? split() 메서드는 구분자로 잘라낸 문자열들을 배열로 반환합니다.
값을 비교하기 위해서는 비교할 대상이 있어야 하는데 첫 번째 값은 비교할 대상이 없으므로 최댓값이기도 하고, 최솟값이기도 합니다. 최댓값과 최솟값을 담을 변수를 선언하고 배열의 첫 번째 요소를 각각 담아줍니다. 여기서 주의할 점은 문자열은 값이 숫자라 할지라도 연산되지 않기 때문에 비교를 정확하게 하기 위해서는 문자열을 정수로 바꿔줘야 합니다. 이때 필요한 것이 Wrapper Class입니다. Integer.parseInt() 메서드를 이용해 숫자로 된 문자열을 정수형으로 바꿔줍니다(참고로 문자도 코드 값을 이용해서 기억하기 때문에 String Class가 가진 CompareTo() 같은 메서드를 이용해 비교할 수 있습니다. 하지만 음수는 처리하지 못하므로 정수로 바꿔 비교하는 것이 좋습니다).
이제 각 최댓값 최솟값 변수에 들어있는 값과 배열의 두 번째 요소부터 비교합니다. 비교해 최댓값보다 크다면 최댓값 변수의 값을 바꾸고, 최솟값보다 작다면 최솟값 변수의 값을 바꿔줍니다. 배열의 모든 요소를 비교하면 최댓값과 최솟값을 가진 변수에는 알맞은 값이 담길 것입니다.
결과는 “최솟값 (공백) 최댓값” 형태의 문자열로 반환해야 하므로 이에 알맞게 바꿔줍니다.
여기서 잠깐!!
+ 연산자는 숫자를 연산할 때도 사용하지만, 문자열에서도 사용합니다. 어떤 타입이든 문자열과 + 연산을 수행하면 결과는 문자열이 됩니다. 따라서 ‘최솟값 변수 + “ ” + 최솟값 변수’ 이렇게 연산하면 결괏값은 문자열이 됩니다. 따로 정숫값을 문자열로 바꾸는 수고는 하지 않아도 됩니다.