반응형
programmers.co.kr/learn/courses/30/lessons/42842
brute force문제였습니다.
풀이방법
다음 공식이 성립합니다.
yellow = (answer.first - 2) * (answer.second - 2)
brown = answer.first * answer.second - yellow
yellow에 대입한다면
brown = answer.first * answer.second - (answer.first - 2) * (answer.second - 2)이 됩니다. 따라서 n^2으로 answer.first, answer.second의 후보를 찾아주시면 됩니다.
Code
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int brown, int yellow) {
int flag = 0;
for(int i = 1; i <= 5000; i++){
for(int j = 1; j<= 5000; j++){
if(yellow == (i-2) * (j-2) &&
brown == i*j - (i-2) * (j-2))
return {max(i,j),min(i,j)};
}
}
}
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - 백준(BOJ) 10448번 : 유레카 이론 (0) | 2021.02.19 |
---|---|
(C++) - 백준(BOJ) 17825번 : 주사위 윷놀이 (0) | 2021.02.17 |
(C++) - 프로그래머스(고득점 kit - 완전탐색) : 소수 찾기 (0) | 2021.02.15 |
(C++) - 백준(BOJ) 2659번 : 십자카드 문제 (0) | 2021.02.12 |
(C++) - 백준(BOJ) 14889번 : 스타트와 링크 답 (0) | 2021.01.30 |