문제 : https://programmers.co.kr/learn/courses/30/lessons/42842
코딩테스트 연습 - 카펫
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과
programmers.co.kr
가로를 a, 세로를 b 라고 놓겠습니다.
갈색 타일의 개수는 2a+2(b-2), 노란색 타일의 개수는 (a-2)(b-2)로 놓을 수 있습니다.
이 두개의 방정식으로 a+b, ab의 값을 알 수 있습니다.
노란색 타일은 1 이상부터 시작하는 조건 하에, while문으로 1씩 증가시켜가며 두 방정식을 만족시키는 값을 각각 구해줍니다.
헤헤 오늘은 완탐 문제~~
#include <string>
#include <vector>
#include <iostream>
using namespace std;
vector<int> solution(int brown, int yellow) {
vector<int> answer;
int a,b;
int sum;
int mul;
sum = (brown+4)/2;
mul = yellow+2*sum-4;
int i = 2;
while(1)
{
b = i;
a = sum-b;
if(a*b == mul)
{
answer.push_back(a);
answer.push_back(b);
break;
}
i++;
}
return answer;
}
'알고리즘 > 완전탐색' 카테고리의 다른 글
[프로그래머스/C++] 로또의 최고 순위와 최저 순위 (0) | 2022.02.18 |
---|---|
[프로그래머스/C++] 모의고사 (0) | 2022.01.26 |