티스토리 뷰

문제 설명

문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.

제한 조건
  • s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
입출력 예
"1 2 3 4" "1 4"
"-1 -2 -3 -4" "-4 -1"
"-1 -1" "-1 -1"

 

음수가 포함되어 있고 숫자가 한 자리 수가 아니기 때문에 공백으로 구분해야 하는 문제입니다.

 

띄어쓰기가 있으면 그 전 문자열을 숫자로 변환해서 비교하도록 해서 풀었는데,

그냥 String s를 split 메소드로 인자 " "을 입력해서 분리한 후 문자열 배열을 숫자로 변환해서 비교해도 됩니다.

 

풀이 안보고 푼 것

import java.util.*;
class Solution {
    public String solution(String s) {
        String answer = "";
        int min = 999999;
        int max = -999999;
        String tmp = "";
        int tempNum = 0;
        s += " ";

        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == ' ') {
                tempNum = Integer.parseInt(tmp);
                if (tempNum < min)
                    min = tempNum;
                if (tempNum > max)
                    max = tempNum;
                tmp = "";
            } else {
                tmp += c;
            }
        }

        answer = min + " " + max;

        return answer;
    }
}

 

간단하게 푸는 방법

public static String solution(String s) {
        String answer = "";
        String tmp = "";
        int tempNum = 0;
        s += " ";

        String[] arr = s.split(" ");
        int min = Integer.parseInt(arr[0]);
        int max = Integer.parseInt(arr[0]);

        // 풀이 본 후
        for (String numStr : arr) {
            int num = Integer.parseInt(numStr);
            if (num < min)
                min = num;
            if (num > max)
                max = num;
        }
        
        answer = min + " " + max;

        return answer;
    }

 

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
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
글 보관함