inblog logo
|
silver
    알고리즘문제풀기

    [알고리즘문제풀기] 최댓값 만들기 (2)

    silver's avatar
    silver
    Dec 21, 2024
    [알고리즘문제풀기] 최댓값 만들기 (2)
    Contents
    문제내가 작성한 정답다른 사람들이 작성한 정답

    문제

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

    내가 작성한 정답

    import java.util.Arrays; class Solution { public int solution(int[] numbers) { int answer = 0; Arrays.sort(numbers); int max1 = numbers[0]*numbers[1]; int max2 = numbers[numbers.length-1]*numbers[numbers.length-2]; // 방법1 : if - else if (max1 > max2) answer = max1; else answer = max2; return answer; // 방법 2 : 삼항연산자 return max1>max2? max1 : max2; // 방법 3 : Math.max함수 return Math.max(max1,max2); } }
    💡
    최대값을 출력하는 함수 Math.max(max1, max2);로 최대값을 구할 수도 있다.
    import java.util.Arrays; import static java.util.Arrays.stream; class Solution { public int solution(int[] numbers) { int max1 = stream(numbers) .sorted() .limit(2) .reduce(1, (a, b) -> a * b); // 초기값을 제공하지 않으면 null일 수도 있으므로 type이 OptionalInt가 되어야하기 때문에 초기값을 제공해준다 int max2 = Arrays.stream(numbers) .boxed() // 내림차순 정리하려면 기본타입에서는 제공되지 않아 boxed로 객체타입으로 변경한 후 아래서 sorted해줘야한다. .sorted((a, b) -> b-a) .limit(2) .reduce(1,(a,b)->a*b); return max1 > max2 ? max1 : max2; } }
    💡
    boxed() 메서드는 기본 데이터 타입의 스트림을 객체 타입의 스트림으로 변환하는 역할을 한다.

    다른 사람들이 작성한 정답

    import java.util.*; class Solution { public int solution(int[] numbers) { int len = numbers.length; Arrays.sort(numbers); return Math.max(numbers[0] * numbers[1], numbers[len - 2] * numbers[len - 1]); } }
    Share article

    silver

    RSS·Powered by Inblog