코딩 테스트/자바

[프로그래머스 / 자바 / Lv.2] 12939 최댓값과 최솟값

HHRR 2024. 7. 10. 22:39
문제

 

 

자바 개념
  • Stream API란?
    람다식을 이용한 기술 중 하나로 데이터 소스를 조작 및 가공, 변환하여 원하는 값으로 반환해주는 인터페이스
    • String[] 배열 to Integer[] 배열 : `Arrays.stream(list).mapToInt(Integer::parseInt)`
    • 최댓값, 최솟값 : `Arrays.stream(list).max().getAsInt()`, `Arrays.stream(list).min().getAsInt()`
풀이

 

String 배열을 Integer 배열로 변환할때 Stream API를 사용하여 풀이하였다.

1. String 입력값을 split을 이용해 공백 기준으로 String 배열로 만들기

2. `Arrays.strea(list).mapToInt(Integer::parseInt)` 로 String 배열을 Integer 배열로 변환해줬다.

3. strem을 사용하여 최댓값 최솟값을 구할때는 `.max().getAsInt()` 로 int 값을 얻어야한다.

4. 다시 문자열로 반환해줘야하기 때문에 StringBuilder를 사용하였다.

    class Solution {
        public String solution(String s) {
            StringBuilder sb = new StringBuilder();
            String[] list = s.split(" "); // 공백 기준 문자열 배열 생성

            // 최댓값 추출
            int max = Arrays.stream(list)
                    .mapToInt(Integer::parseInt) // String[] to Integer[]
                    .max()
                    .getAsInt();
            // 최솟값 추출
            int min = Arrays.stream(list)
                    .mapToInt(Integer::parseInt) // String[] to Integer[]
                    .min()
                    .getAsInt();

            sb.append(min + " ");
            sb.append(max);
            return sb.toString();
        }
    }