728x90
반응형
#include <string>
#include <vector>
#include <iostream>
using namespace std;
vector<int> yak;
int yaksoo(int n) {
for (int i = 1; i * i <= n; i++) {
if (n % i == 0) {
yak.push_back(i);
}
}
return 0;
}
vector<int> solution(int brown, int yellow) {
vector<int> answer;
yaksoo(yellow);
for (int i = 0; i < yak.size(); i++) {
int width = yellow / yak[i];
int height = yak[i];
int sum = 2 * (width + height) + 4;
if (sum == brown) {
answer.push_back(width + 2);
answer.push_back(height + 2);
break;
}
}
return answer;
}
결국 모든 경우를 따져야 된다고 생각했습니다. 노란색 카펫 개수로 만들 수 있는 모양을 전부 확인해줍니다.
즉 노랑색 카펫 개수의 약수들의 경우로 카펫을 만들었을 때 갈색 카펫 개수와 맞는지 확인해주면 됩니다.
728x90
반응형
'알고리즘' 카테고리의 다른 글
[프로그래머스][2020 카카오인턴] 수식 최대화 C++ (0) | 2021.05.10 |
---|---|
[프로그래머스] 입국 심사 C++ (0) | 2021.05.04 |
[프로그래머스] 2016년 (0) | 2021.04.07 |
[프로그래머스] 등굣길 (0) | 2021.03.19 |
[프로그래머스] 2020카카오 문자열 압축 (0) | 2021.03.19 |