· 문제 설명
문자열 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.ArrayList;
class Solution {
public String solution(String s) {
String answer = "";
String num = "";
ArrayList<String> temp = new ArrayList<String>();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) != ' ') {
num += s.charAt(i);
} else {
temp.add(num);
num = "";
}
if (i == s.length()-1) {
temp.add(num);
}
}
int max = Integer.parseInt(temp.get(0));
int min = Integer.parseInt(temp.get(0));
for (int i = 0; i < temp.size(); i++) {
max = max < Integer.parseInt(temp.get(i)) ? Integer.parseInt(temp.get(i)) : max;
min = min > Integer.parseInt(temp.get(i)) ? Integer.parseInt(temp.get(i)) : min;
answer = min + " " + max;
}
return answer;
}
}
· 다른 사람의 풀이
class Solution {
public static String solution(String s) {
String[] temp = s.split(" ");
int min, max, n;
min = max = Integer.parseInt(temp[0]);
for (int i = 0; i < temp.length; i++) {
n = Integer.parseInt(temp[i]);
if (min > n) min = n;
if (max < n) max = n;
}
return min + " " + max;
}
}
str.str.split(value) : value를 기준으로 문자열을 분할ㅠ..
함수 활용능력이 내가 너무 떨어지나봐..
· 문제 출처
https://programmers.co.kr/learn/courses/30/lessons/12939
댓글