[문제 설명]
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
s | return |
"1 2 3 4" | "1 4" |
"-1 -2 -3 -4" | "-4 -1" |
"-1 -1" | "-1 -1" |
[문제 풀이]
import java.util.*;
class Solution {
public String solution(String s) {
// 공백을 이용해서 값을 자르고 배열에 넣기
String[] arrS = s.split(" ");
// int 배열로 변환
int[] arrI = new int[arrS.length];
for(int i=0; i<arrS.length; i++)
arrI[i] = Integer.parseInt(arrS[i]);
Arrays.sort(arrI);
int max = arrI.length;
String answer = arrI[0] + " " + arrI[max-1];
return answer;
}
}
처음에는 단순하게 문자열 배열에서 정렬한 후 값을 비교하려고 했으나
문자열 배열일 때에는 -1보다 -4가 큰 수로 정렬이 되어 int형으로 변경해야했다.
변경하고 보니 불필요한 변환이 많아서 방법을 다르게 생각했다.
어차피 정렬할거라면 숫자의 배열로 변경하고 그 배열을 정렬한 후, 맨 앞과 맨 뒤의 값만 출력시키는 것으로 작성했다.
'STUDY > 프로그래머스 코딩테스트' 카테고리의 다른 글
✔ [월간 코드 챌린지 시즌1] 3진법 뒤집기 (0) | 2022.09.30 |
---|---|
[연습문제] 최대공약수와 최소공배수 (0) | 2022.09.29 |
📚 [완전탐색] 최소직사각형 (0) | 2022.09.29 |
📚 [연습문제] 시저 암호 (0) | 2022.09.29 |
📚 [연습문제] 이상한 문자 만들기 (0) | 2022.09.28 |