C++:: 프로그래머스 < 카펫 >

jahlee·2023년 4월 14일
0

프로그래머스_Lv.2

목록 보기
32/106
post-thumbnail

보통 넓이값을 비교해가면서 행열의 길이를 체크하는 풀이가 많았는데, 생각이 나는데로 풀다보니 다음과 같이 풀었다.

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int brown, int yellow)
{
    for(int i=brown/2-1; i>=3; i--)
    {// brown/2 는 행+열-2의 길이이다.
        int col = i, row = brown/2 - i;
        if ((col - 2)*row == yellow) return {col, row+2};
        // (행-2)*열이 곧 내부에 들어가는 yellow의 개수이다.
    }
    return {};
}

이해하기 쉽게 예시를 들자면
oooo
oXXo
oooo
와 같이 4(행)x3(열)의 크기이면 중앙에 들어가는 yellow의 개수는 행-2 x 열-2 개이다.

0개의 댓글