반응형

문제출처

https://programmers.co.kr/learn/courses/30/lessons/42842


문제를 읽으면 빨간색은 갈색으로 둘러쌓여있다고 한다. 즉 카펫의 가로,세로가 3이상이라는 뜻이다. 또한 빨간타일을 구할때는 위,아래 row와 왼쪽,오른쪽 col을 제외한 크기를 곱하면 빨간타일의 갯수가 나온다.


소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <string>
#include <vector>
#include <math.h>
using namespace std;
 
vector<int> solution(int brown, int red) {
    vector<int> answer;
    int sum=brown+red;
    int limit=(int)sqrt(sum);
    
    for(int i=3; i<=limit; i++)
    {
        if(sum % i ==0)
        {
            int tmp = sum/i;
            //전체 카펫 위,아래 row 왼쪽,오른쪽 col을 제외하고 곱하면 red타일의 갯수가 나온다.
            if((tmp-2* (i-2== red)
            {
                answer.push_back(tmp);
                answer.push_back(i);
                break;
            }
        }
    }
    return answer;
}
cs




반응형

+ Recent posts