반응형
728x170
정말 수학문제다.
한줄로만 어떠한 것을 감싸려면 어떻게 해야하는가?
를 생각하면 바로 풀린다.
난 이런 문제가 좋다.
https://programmers.co.kr/learn/courses/30/lessons/42842
#맞는 풀이
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(int brown, int yellow) {
vector<int> answer;
int temp = (brown-4)/2; // 노랑이 x,y의 길이를 가진다면 x+y 의 값
for(int i = 1; i<=yellow; i++){
//나눠질 때 해당 약수의 합이 temp와 같다면
if(yellow%i == 0){
if(yellow/i+ i == temp){
answer.push_back((yellow/i)+2);
answer.push_back(i+2);
break;
}
}
}
sort(answer.begin(), answer.end());
reverse(answer.begin(), answer.end());
return answer;
}
x*y의 직사각형을 감싸기 위해서는
2x + 2y + 4의 블럭이 필요하다는 수학적인 지식으로 푼다.
728x90
반응형
그리드형
'문제풀이(Problem Solving)' 카테고리의 다른 글
프로그래머스, 점프와 순간 이동 : C++ [CPP] (0) | 2021.11.16 |
---|---|
프로그래머스, 타겟 넘버 : C++ [CPP] (0) | 2021.11.15 |
프로그래머스, 숫자의 표현 : C++ [CPP] (0) | 2021.11.12 |
프로그래머스, [3차] n진수 게임 : C++ [CPP] (0) | 2021.11.11 |
프로그래머스, 다음 큰 숫자 : C++ [CPP] (0) | 2021.11.11 |