본문 바로가기
프로그래머스/C

[프로그래머스/C]프로그래머스 Level 1 : 최소직사각형 C언어

by starfish22 2021. 11. 28.
728x90

▶문제 : 코딩 테스트 연습 - 최소 직사각형 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 최소직사각형

[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133

programmers.co.kr

 

▶코드 작성

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

// sizes_rows는 2차원 배열 sizes의 행 길이, sizes_cols는 2차원 배열 sizes의 열 길이입니다.
int solution(int **sizes, size_t sizes_rows, size_t sizes_cols)
{
    int answer = 0;
    int width = 0, height = 0, temp;

    for (int i = 0; i < sizes_rows; i++)
    {
        if (sizes[i][0] < sizes[i][1])//큰 값을 가로로 바꿔준다
        {
            temp = sizes[i][0];
            sizes[i][0] = sizes[i][1];
            sizes[i][1] = temp;
        }
        if (sizes[i][0] > width) width = sizes[i][0];//가로 최대값
        if (sizes[i][1] > height) height = sizes[i][1];//세로 최대값
    }

    answer = width * height;

    return answer;
}

 

▶해석

반복문을 돌려서 가로, 세로 가 있으면 더 큰 값을 가로에 넣고 width 변수가 가로 최댓값, height 변수가 세로 최댓값으로 구해서 둘이 곱하여 최소 직사각형이 나온다.

728x90

댓글