IT/알고리즘

프로그래머스 Lv.0 최댓값 만들기(2)

thesse 2023. 5. 24. 23:00
300x250
반응형

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

 

프로그래머스

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

programmers.co.kr

 

 

* 버클업 5월 5째주

import java.util.*;

class Solution {
    public int solution(int[] numbers) {
        int answer = -100000000;
        
        for(int i=0; i<numbers.length; i++){
            for(int j=i+1; j<numbers.length; j++){
                answer = Math.max(answer, numbers[i]*numbers[j]);
            }
        }
        
        return answer;
    }
}

그냥 brute force로 풀었는데 나쁘지 않게 나온것같다...내생각엔

 

 

*

 

 

 

다른 사람의 풀이를 보는데 또 한줄코딩을 하는 사람들이 있었다.

        int len = numbers.length;
        Arrays.sort(numbers);
        return Math.max(numbers[0] * numbers[1], numbers[len - 2] * numbers[len - 1]);

정말 심플심플...

 

Arrays.sort() 하는 방식으로도 할 수 있구나 깨달았다.

다만 Math는 자바 표준 라이브러리라서 그냥 쓰면 되는데

Arrays를 쓰려면 import java.util.Arrays 를 해줘야 한다.

 

그리고 코드는 깔끔한데 시간 효율은 그닥인 듯했다.

숫자가 더 커지면 다를수도...?

 

300x250
반응형