Coding Test

최댓값 만들기(1)

honey-vision 2024. 7. 14. 14:35

문제 설명
정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소 중 두 개를 곱해 만들 수 있는 최댓값을 return하도록 solution 함수를 완성해주세요.

 

우선, 최대값을 찾기 위해 max1과 max2 변수를 만든다.

현재 원소가 max1보다 크면 max1을 갱신하고 max2를 이전의 max1로 설정, 현재 원소가 max1은 아니지만 max2보다 크면 max2를 갱신한다.

#include <stdio.h>

int solution(int numbers[], size_t numbers_len) {
    int max1 = numbers[0], max2 = numbers[1];
    int answer = 0;

    // 처음부터 max1, max2 초기화
    if (max1 < max2) {
        int temp = max1;
        max1 = max2;
        max2 = temp;
    }

    for (int i = 2; i < numbers_len; i++) {
        if (numbers[i] > max1) {
            max2 = max1;
            max1 = numbers[i];
        } else if (numbers[i] > max2) {
            max2 = numbers[i];
        }
    }
    answer = max1 * max2;
    return answer;
}

 

'Coding Test' 카테고리의 다른 글

문자열안에 문자열  (0) 2024.07.16
최댓값 만들기 (2)  (0) 2024.07.15
문자열 뒤집기  (0) 2024.07.13
피자 나눠 먹기 (3)  (0) 2024.07.12
편지  (0) 2024.07.11