[Level1]최대값과 최소값
by EastGlow
문제
getMinMaxString 메소드는 String형 변수 str을 매개변수로 입력받습니다. str에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 String을 반환하는 메소드를 완성하세요. 예를 들어 str이 1 2 3 4라면 1 4를 리턴하고, -1 -2 -3 -4라면 -4 -1을 리턴하면 됩니다.
풀이 1
public class GetMinMaxString {
public String getMinMaxString(String str) {
String[] strArr = str.split(" ");
String result;
int min = Integer.parseInt(strArr[0]);
int max = Integer.parseInt(strArr[0]);
for(int i=1; i < strArr.length; ++i){
if (min > Integer.parseInt(strArr[i])) min = Integer.parseInt(strArr[i]);
if (max < Integer.parseInt(strArr[i])) max = Integer.parseInt(strArr[i]);
}
result = min + " " + max;
return result;
}
public static void main(String[] args) {
String str = "1 2 3 4";
GetMinMaxString minMax = new GetMinMaxString();
//아래는 테스트로 출력해 보기 위한 코드입니다.
System.out.println("최대값과 최소값은?" + minMax.getMinMaxString(str));
}
}
내가 푼 방식이다. 먼저 split를 통해 공백으로 문자열을 나눈 후, 배열의 제일 첫번째 값을 min과 max에 담는다. 후에 for문을 돌리면서 0번째 이후의 값들과 비교한다. 비교하는 값이 min보다 작으면 그 값이 min이 되고, max보다 크면 그 값이 max가 된다.
풀이 2
import java.util.Arrays;
public class GetMinMaxString {
public String getMinMaxString(String str) {
String[] strArr = str.split(" ");
String result;
int arrInt[] = new int [strArr.length];
for(int i=0; i<strArr.length; i++){
arrInt[i] = Integer.parseInt(strArr[i]);
}
Arrays.sort(arrInt);
result = arrInt[0] + " " + arrInt[strArr.length-1];
return result;
}
public static void main(String[] args) {
String str = "1 2 3 4";
GetMinMaxString minMax = new GetMinMaxString();
//아래는 테스트로 출력해 보기 위한 코드입니다.
System.out.println("최대값과 최소값은?" + minMax.getMinMaxString(str));
}
}
다른 사람의 풀이 중에 추천수 상위권에 랭크되어 있던 풀이이다. split한 String 배열을 다시 int 배열로 바꾼 후, Arrays에 있는 sort를 통해 오름차순 정렬 후 출력하는 방식이다.
Subscribe via RSS