728x90
반응형
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.
제한사항
-10,000 ≤ numbers의 원소 ≤ 10,000
2 ≤ numbers 의 길이 ≤ 100
입출력 예
numbers result
[1, 2, -3, 4, -5] 15
[0, -31, 24, 10, 1, 9] 240
[10, 20, 30, 5, 5, 20, 5] 600
입출력 예 설명
입출력 예 #1
두 수의 곱중 최댓값은 -3 * -5 = 15 입니다.
입출력 예 #2
두 수의 곱중 최댓값은 10 * 24 = 240 입니다.
입출력 예 #3
두 수의 곱중 최댓값은 20 * 30 = 600 입니다.
내 풀이
[Java]
import java.util.*;
class Solution {
public int solution(int[] numbers) {
int answer = 0;
ArrayList<Integer> list = new ArrayList<>();
for(int i = 0; i < numbers.length - 1; i++){
for( int j = i + 1; j < numbers.length; j++){
list.add(numbers[i] * numbers[j]);
}
}
answer = Collections.max(list);
return answer;
}
}
[C]
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// numbers_len은 배열 numbers의 길이입니다.
int solution(int numbers[], size_t numbers_len) {
int answer = -100001;
int list[20001];
int cnt = 0;
for(int i = 0; i < numbers_len - 1; i++){
for(int j = i + 1; j < numbers_len; j++){
list[cnt++] = numbers[i] * numbers[j];
}
}
list[cnt] = '\0';
if(numbers_len == 2) return numbers[0] * numbers[1];
for(int i = 0; i < cnt; i++){
if(answer < list[i]) answer = list[i];
}
return answer;
}
[Python]
def solution(numbers):
answer = 0
list = []
for i in range(0, len(numbers) - 1):
for j in range(i + 1, len(numbers)):
list.append(numbers[i] * numbers[j])
answer = max(list)
return answer
https://school.programmers.co.kr/learn/courses/30/lessons/120862
728x90
반응형
'코딩테스트 > 프로그래머스 입문' 카테고리의 다른 글
[코딩테스트 Lv.0] 숨어있는 숫자의 덧셈 (2) (0) | 2024.02.11 |
---|---|
[코딩테스트 Lv.0] 다항식 더하기 (0) | 2024.02.07 |
[코딩테스트 Lv.0] 캐릭터의 좌표 (0) | 2024.02.05 |
[코딩테스트 Lv.0] 직사각형 넓이 구하기 (0) | 2024.02.02 |
[코딩테스트 Lv.0] 배열 원소의 길이 (0) | 2024.02.01 |