Level1 최대값과 최소값

문제

getMinMaxString 메소드는 String형 변수 str을 매개변수로 입력받습니다.
str에는 공백으로 구분된 숫자들이 저장되어 있습니다.
str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 String을 반환하는 메소드를 완성하세요.
예를들어 str이 1 2 3 4라면 1 4를 리턴하고, -1 -2 -3 -4라면 -4 -1을 리턴하면 됩니다.

일단 공백으로 구분되어 있다고 하길래 바로 문자열 메소드인 split을 생각해내긴 했다.

그런데 최대값, 최소값을 비교하는 부분에 있어서 코드가 깔끔하지 못한 것 같다.

아래의 다른사람의 풀이를 봐도 그냥 바로 Arrays의 클래스의 sort 메소드만 사용할줄 알아도 바로 정렬이 된다.

사실 다 어디선가 봤고 써봤는데 기억이 안나고 막상 실상황에 사용하려고하면 잘 생각이 나질 않는다.

앞으로 이런 문제를 통해서 계속 연습해 나가야 할 것 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class GetMinMaxString {
public String getMinMaxString(String str) {

String[] strArr = str.split(" ");
int[] intArr = new int[strArr.length];

for (int i=0; i<strArr.length; i++) {
intArr[i] = Integer.parseInt(strArr[i]);
}

int min = 0;
int max = 0;
for (int i=0; i<intArr.length; i++) {
if (min > intArr[i]) {
min = intArr[i];
}
if (max < intArr[i]) {
max = intArr[i];
}
}

String result = min +" "+ max;

return result;
}

public static void main(String[] args) {
String str = "100 2 3 15";
GetMinMaxString minMax = new GetMinMaxString();
//아래는 테스트로 출력해 보기 위한 코드입니다.
System.out.println("최대값과 최소값은?" + minMax.getMinMaxString(str));
}
}

다른 사람의 풀이 (1)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class GetMinMaxString {
public String getMinMaxString(String str) {

String strArr[] = str.split(" ");
int arrInt[] = new int [strArr.length];

for(int i=0; i<strArr.length; i++){

arrInt[i] = Integer.parseInt(strArr[i]);
}

Arrays.sort(arrInt);

String 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));
}
}

다른 사람의 풀이(2)

딱 필요한 것만 있는듯한 코드.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class GetMinMaxString {
public String getMinMaxString(String str) {
String[] tmp = str.split(" ");
int min, max, n;
min = max = Integer.parseInt(tmp[0]);
for (int i = 1; i < tmp.length; i++) {
n = Integer.parseInt(tmp[i]);
if(min > n) min = n;
if(max < n) max = n;
}

return min + " " + max;

}

public static void main(String[] args) {
String str = "1 2 3 4";
GetMinMaxString minMax = new GetMinMaxString();
//아래는 테스트로 출력해 보기 위한 코드입니다.
System.out.println("최대값과 최소값은?" + minMax.getMinMaxString(str));
}
}
Share