본문 바로가기
CODING/Programmers

[Programmers] 최댓값과 최솟값

by snow_white 2022. 9. 26.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

문자열 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"

간단한 문제라서 포스팅할까 말까 고민하다가 Stream을 활용해서 풀어본 문제라 특⭐히 작성해두기로 했다.

 

나의 요구사항

1. String 배열을 List<Integer>로 한 번에 변환하고 싶음

2. List에서 최댓값, 최솟값을 Stream을 통해 추출해내고 싶음

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class Solution {

	public static void main(String[] args) {
		System.out.println(solution("-1 -1"));
	}
	public static String solution(String s) {
        String[] arr = s.split(" ");
        List<Integer> list =Arrays.stream(arr)
                .map(Integer::parseInt)
                .collect(Collectors.toList());
        return list.stream().mapToInt(x->x).min().getAsInt() + " " + list.stream().mapToInt(x->x).max().getAsInt();
    }
}

댓글