Java 프로그래머스 코딩테스트 : 최댓값과 최솟값
<문제>
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.

[문제 해석]
문자열을 공백을 기준으로 분리해서 분리한 문자열을 정수형으로 반환후 최댓값과 최솟값을 구해야한다
문자열로 숫자가 저장되어 있기 때문에 숫자 크기 비교를 하려면 분리해서 정수형으로 반환해줘야한다 s에 있는 문자열을 공백 기준으로 " " 분리해서 정수로 변환한다
[ split() 함수로 문자열 자르기 ]
String [ ] 잘라서 넣을 새변수 이름 = 자를 변수명.split(" 기준으로 자를 문자 ") ;
문자열을 정수로 변환하는 것은 아래 링크를 참고해줬다
https://www.freecodecamp.org/korean/news/java-string-to-int-how-to-convert-a-string-to-an-integer/
그리고 난뒤는 비교적 간단하다 하던대로 최댓값과 최솟값을 구하면 된다
numbers의 길이 만큼 for 문을 반복하며 min 으로 초기화 해둔 값보다 작은 값이 있는지 if ( num < min ) ,
max 로 초기화 해둔 값보다 큰 값이 있는지 if ( num > max ) 를 비교한다

class Solution {
public String solution(String s) {
String answer = "";
String[] numbers = s.split(" ");
// 문자열을 정수로 변환하여 최소값과 최대값을 초기화
int min = Integer.parseInt(numbers[0]);
int max = Integer.parseInt(numbers[0]);
// 최소값과 최대값 갱신
for (int i = 1; i < numbers.length; i++) {
int num = Integer.parseInt(numbers[i]);
if (num < min)
min = num;
if (num > max)
max = num;
}
// 결과 문자열 생성
answer = min + " " + max;
return answer;
}
}
문제에서 문자열을 공백 기준으로 분리해야 되는 것을 이해하지 못했었다 . . . 아래 풀이를 참고해서 풀 수 있었다
https://tmdrl5779.tistory.com/277
special thanks to . .
https://school.programmers.co.kr/learn/courses/30/lessons/12939
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr