강의로 돌아가기
Yunho, Jeon

완전탐색 문제가 아닌듯 합니다.

아래의 방정식으로 해답을 계산할 수 있는 문제라서 완전탐색이 필요하진 않은 문제인것 같습니다.

2(M+N)-4 = Brown
(M-2)
(N-2) = Red

작성중인 코드―solution.cpp
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
27
28
29
30
31
32
33
#include <string>
#include <vector>
#include <cmath>

using namespace std;

vector<int> solution(int brown, int red) {
    vector<int> answer;

    if(brown%2!=0) return {0,0};

    int a = brown/2 + 2;
    int b = brown + red;

    //printf("%d,%d",a,b);

    int M = a/2.f + sqrt((float)(a*a/4.f - b));
    int N = a - M;

    if(M>N)
    {
        answer.push_back(M);
        answer.push_back(N);
    }
    else
    {
        answer.push_back(N);
        answer.push_back(M);
    }  


    return answer;
}
1 개의 답변
Demi

안녕하세요. 한 문제를 푸는데에는 다양한 방법이 있습니다. 본 문제는 수학적으로 풀수도 있고, 완전탐색으로도 풀 수 있습니다.
문제의 모든 풀이 방법을 나누는 건 힘든 일이라, 완전 탐색으로 분류하였습니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.