프로그래머스/lv2

프로그래머스 : 카펫 (lv2)

TIN9 2022. 10. 6.
반응형

 

#include <string>
#include <vector>
#include <queue>

using namespace std;

vector<int> solution(int brown, int yellow) {
    vector<int> answer;
    
    int MaxCount = brown + yellow;
    
    int Height = 1;
    
    // 여기서 Width를 MaxCount부터 --하는 이유는 제한사항에
    // 가로길이는 세로 길이와 같거나 길기때문이다
    // 1부터 증감연산자를 이용해 반복문을 돌게되면 ex : 8 * 6이 아니라 6 * 8이 됨
    for(int Width = MaxCount; Width > 0; --Width)
    {
        Height = MaxCount / Width;
        
        // 갈색 격자는 무조건 사이드에 배치되어 있기 때문에
        // Height과 Width -2를 곱한값이 노랑격자의 개수와 같은지를 판단하면 된다.
        if(((Height - 2) * (Width - 2)) == yellow)
        {
            answer.push_back(Width);
            answer.push_back(Height);
            break;
        }
    }
    
    
    return answer;
}
반응형

댓글