cosmohoo 2021. 11. 13. 01:54
반응형

문제설명

 

제한사항

  • 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다.
  • 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다.
  • 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다.

 

입출력 예

brown                                              yellow                                                 return

10 2 [4, 3]
8 1 [3, 3]
24 24 [8, 6]

 

 

 

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int brown, int yellow) {
    vector<int> answer;
    int area = brown + yellow; 
    
    for(int width =1; width <= area/2; width++ )
    {
        for(int height =1; height <= width; height++)
        {
            int mul = width*height;
            if(mul == area)
            {
                if( (width-2)*(height-2) ==yellow )
                {
                  answer.push_back(width);  answer.push_back(height);
                  break;
                }
                else continue;
            } 
        }
        if(!answer.empty()) break;
    }
    
    return answer;
}

 

 

=> 문제에 주어진대로 풀면 되는 문제입니다. (완전탐색)

 

=> (WIDTH-2) * (HEIGHT-2) = yellow라는 제한사항을 넣어주어야하는 문제입니다. 

 

=> 해당문제에는 제한사항이 안적혀있어 질문에 있는 팁을 보고 풀었습니다. 

 

=> 원문제에는 해당 제한사항이 적혀있다고 합니다. 

 

 

 

 

정답화면

 

반응형