[JAVA/프로그래머스] 연습문제: 최댓값과 최솟값

👀 문제

https://programmers.co.kr/learn/courses/30/lessons/12939

👊 도전

1. 설계

  1. 공백 기준으로 split()한다.
  2. min, max를 str[0] int형으로 초기화한 후 1부터 순회하며 조건에 맞게 넣는다.
  3. String 조건에 맞게 min, max를 리턴한다.

2. 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.*;
/**
 *
 * @author HEESOO
 *
 */
class Solution {
    public String solution(String s) {
        String answer = "";
        String[] str=s.split(" ");
        int n=str.length;
        
        int num=Integer.parseInt(str[0]); // int형으로 변환한 값
        int min=num, max=num; // 0번째 값으로 초기화
        for(int i=1;i<n;i++){
            num=Integer.parseInt(str[i]);
            // 갱신
            min=Math.min(min, num);
            max=Math.max(max, num);
        }
        answer=String.valueOf(min)+" "+String.valueOf(max);
        return answer;
    }
}

3. 결과

실행결과 🤟 성공 🤟
String형에 음수가 붙어있는 것을 parseInt해도 음수로 인식할 수 있는지 모르고 -1을 곱하는 방식으로 문제를 풀었는데, 다른 사람 풀이를 보고 가능하다는 것을 알아서 다시 풀었다.

4. 설명

  1. 공백 기준 split하고 min, max를 구한다
    • 문자열을 split하여 str[]에 넣는다.
    • min, max를 str[0] 값으로 초기화한다.
    • i=1부터 n-1까지 순회하며 str[i]가 min, max보다 더 작거나 크다면 갱신한다.

👏 해결 완료!