ෆ ⋆ ₊ ゚ ☽ * ₊ ⋆

프로그래머스/C

최댓값 만들기(1)

우당탕가윤 2023. 1. 4. 00:51

https://school.programmers.co.kr/learn/courses/30/lessons/120847?language=c 

 

프로그래머스

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

programmers.co.kr


■ 문제 설명

 

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

 

■ 제한사항

  • 0 ≤ numbers의 원소 ≤ 10,000
  • 2 ≤ numbers의 길이 ≤ 100

■ 나의 코드

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// numbers_len은 배열 numbers의 길이입니다.
int solution(int numbers[], size_t numbers_len) {
    int answer = 0;
    for(int i=0; i<numbers_len-1; i++) {
        for(int j=0; j<numbers_len-1-i; j++) {
            if(numbers[j] < numbers[j+1]) {
                answer = numbers[j];
                numbers[j] = numbers[j+1];
                numbers[j+1] = answer;
            }
        }
        answer = numbers[0] * numbers[1];
    }
    return answer;
}

 

■ 코드해설

버블 정렬을 사용해 numbers[ ]을 내림차순 정렬을 해 numbers[0] (가장 큰 숫자)와 numbers[1] (두 번째로 큰 숫자)를 곱해준다.

 


■ 기타

버블 정렬 말고도 다른 정렬을 사용해 코드를 간단하게 정리할 수 있을 것 같다.

'프로그래머스 > C' 카테고리의 다른 글

제곱수 판별하기  (0) 2023.01.11
머쓱이보다 키 큰 사람  (0) 2023.01.04
편지  (0) 2022.12.30
다음에 올 숫자  (0) 2022.12.30