카펫 / Lv.2
문제 설명 )
Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다.
![](https://blog.kakaocdn.net/dn/d3g9pj/btr41hXBJP9/NrGey5fSht45KK3qACrAsK/img.png)
Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.
Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요.
제한 사항 )
- 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다.
- 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다.
- 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다.
입출력 예 )
풀이)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int brown, int yellow) {
vector<int> answer;
// yellow를 기준으로 brown을 계산하면서 완전 탐색함.
for(int i = 1; i <= yellow; i++)
{
if (yellow % i == 0)
{
// yellow을 쌓아가면서 brown의 개수를 계산
int temp = ((yellow / i) + 2) * 2 + 2 * i;
if (temp == brown)
{
return vector<int> { (yellow / i) + 2, i + 2};
}
}
}
return answer;
}
|
cs |
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/42842
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'Develop > 프로그래머스 (Cpp)' 카테고리의 다른 글
[프로그래머스] 예상 대진표 (C++) (0) | 2023.03.21 |
---|---|
[프로그래머스] 구명보트 (C++) (0) | 2023.03.21 |
[프로그래머스] 영어 끝말잇기 (C++) (0) | 2023.03.21 |
[프로그래머스] 짝지어 제거하기 (C++) (0) | 2023.03.21 |
[프로그래머스] 이진 변환 반복하기 (C++) (0) | 2023.03.20 |