프로그래머스 42842 - 카펫
생각 및 접근
사족
- Leo의 눈썰미에 박수를 보낸다.
본문
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;
}
채점 결과
'Coding Test > programmers' 카테고리의 다른 글
프로그래머스 42629 - 라면공장 (c++) (0) | 2020.07.31 |
---|---|
프로그래머스 42626 - 더 맵게 (c++) (0) | 2020.07.31 |
프로그래머스 42841 - 숫자 야구 (c++) (0) | 2020.07.30 |
프로그래머스 42893 - 소수 찾기 (c++) (0) | 2020.07.30 |
프로그래머스 42840 - 모의고사 (c++) (0) | 2020.07.30 |