프로그래머스 42842 - 카펫
문제 설명
생각 및 접근
사족
본문
yellow
를 토대로 노란색의 카펫을 먼저 만들어본 뒤, 노란색의 카펫을 기준으로 갈색 카펫을 덧붙인다. 덧붙인 결과, brown
과 갈색 카펫의 수가 같다면 정답이므로, 갈색 카펫의 크기를 반환하면 된다.
- 노란색의 카펫을 만들기 위한 과정
- 갈색 카펫을 덧붙인 뒤, 그 갯수를 세는 과정
brown == (yellowWidth + 2) * 2 + (yellowHeight + 2) * 2 - 4
코드
#include <bits/stdc++.h>
using namespace std;
vector<int> solution(int brown, int yellow) {
vector<int> answer;
for(int i = 1; i <= yellow; i++){
if(yellow % i == 0){
int yellowWidth = max(i, yellow / i);
int yellowHeight = min(i, yellow / i);
if(brown == (yellowWidth + 2) * 2 + (yellowHeight + 2) * 2 - 4){
answer.push_back(yellowWidth + 2);
answer.push_back(yellowHeight + 2);
break;
}
}
}
return answer;
}
채점 결과