공log/[P&B]

[P&B] #1 Programmers

ming_OoO 2023. 7. 19. 23:07
728x90

프로그래머스 연습문제 Lv.2 

최댓값과 최솟값

문제 설명

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

 

제한 조건

  • s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.

문제 풀이 코드

import java.util.Arrays;

class Solution {
    public String solution(String s) {
        String answer = "";
        String[] str = s.split(" ");
        int[] num = new int[str.length];
        for (int i = 0; i < str.length; i++) {
            num[i] = Integer.parseInt(str[i]);
        }
        Arrays.sort(num);
        System.out.println(Arrays.toString(num));

        int max = num[0], min = num[num.length-1];
        for (int i = 0; i + 1 < num.length; i++) {
            if (max<Math.max(num[i],num[i + 1]))
                max = Math.max(num[i],num[i + 1]);
            if (min > Math.min(num[i],num[i + 1]))
                min = Math.min(num[i],num[i + 1]);
        }
        answer = min + " " + max;
        return answer;
    }
}

public class Main {
    public static void main(String[] args) {
        Solution s = new Solution();
        System.out.println(s.solution("1 2 3 4"));
        System.out.println(s.solution("-1 -2 -3 -4"));
        System.out.println(s.solution("-1 -1"));
    }
}

문제 풀이 코멘트

1일 1코딩문제를 결심하고 첫 문제풀이다. 레벨 2에 연습문제를 선택해서 쉽고 무난하게 풀었다. 

다 풀고보니 굳이 Math 함수를 사용하지 않고 더 깔끔하고 가독성 높은 코드로 짤 수 있었는데 왜 굳이 저걸 쓴건지 모르겠다.

많은 함수를 사용하기 보다 깔끔하면서 이해하기 쉬운 코드로 짜는것을 연습해야할 것 같다.

728x90

'공log > [P&B]' 카테고리의 다른 글

[P&B] #6 Programmers  (0) 2023.07.24
[P&B] #5 Programmers  (0) 2023.07.23
[P&B] #4 Programmers  (0) 2023.07.22
[P&B] #3 Programmers  (0) 2023.07.21
[P&B] #2 Programmers  (0) 2023.07.20