코딩 테스트
[프로그래머스] (Lv.2) 최댓값과 최솟값
ImKDM
2022. 9. 8. 23:19
728x90
문제
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
- 출력 예시 -
정답 코드
< 내 정답 코드 >
class Solution {
public String solution(String s) {
String[] strArr = s.split(" ");
int[] numArr = new int[strArr.length];
int idx = 0;
for (String str : strArr) {
numArr[idx++] = Integer.parseInt(str);
}
Arrays.sort(numArr);
String answer = numArr[0] + " " + numArr[numArr.length - 1];
return answer;
}
}
이것을 주의하자!
- 일단 String 문자열을 split( ) 메서드를 이용해서 String 배열로 만든다. 해당 문제에선 빈칸으로 각 문자가 구분되어 있기 때문에 split( " " ) 으로 했다. 이후 배열을 정렬하기 위해 int [ ] 배열에 형변환으로 넣는다. 그리고 정렬을 시키고 가장 앞에 있는 원소와 가장 뒤에 있는 원소를 반환했다.
- 타인 답변 코드들도 비슷했다. 결국 split( ) 를 통해 String 배열을 만들고, 이후 parseInt( ) 로 int 형으로 만든 다음 비교를 하는 로직이다.