๋ฌธ์
Leo๊ฐ ๋ณธ ์นดํซ์์ ๊ฐ์ ๊ฒฉ์์ ์ brown, ๋นจ๊ฐ์ ๊ฒฉ์์ ์ red๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์นดํซ์ ๊ฐ๋ก, ์ธ๋ก ํฌ๊ธฐ๋ฅผ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๊ฐ์ ๊ฒฉ์์ ์ brown์ 8 ์ด์ 5,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- ๋นจ๊ฐ์ ๊ฒฉ์์ ์ red๋ 1 ์ด์ 2,000,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- ์นดํซ์ ๊ฐ๋ก ๊ธธ์ด๋ ์ธ๋ก ๊ธธ์ด์ ๊ฐ๊ฑฐ๋, ์ธ๋ก ๊ธธ์ด๋ณด๋ค ๊น๋๋ค.
ํด๊ฒฐ
key point, 1. ์นดํซ์ ๊ฐ๋ก ๊ธธ์ด๋ ์ธ๋ก ๊ธธ์ด์ ๊ฐ๊ฑฐ๋, ์ธ๋ก ๊ธธ์ด๋ณด๋ค ๊น๋๋ค.
2. ๋ชจ๋ ๊ฐ๋ฅํ ๋๋น์ ๋์ด๋ ๋ชจ๋ ๊ฒฉ์ ์์ ์ ๊ณฑ๊ทผ๊น์ง๋ง ํ์ํ๋ฉด ๊ตฌํ ์ ์์ต๋๋ค.
- ๊ฐ์ ๊ฒฉ์ ์์ ๋นจ๊ฐ์ ๊ฒฉ์์ ์๋ฅผ ๋ชจ๋ ๋ํ๋ฉด ์ ์ฒด ๊ฒฉ์ ์๊ฐ ๋ฉ๋๋ค. → total
- ๋ชจ๋ ๊ฒฉ์ ์์ ๋ํด์ ๊ฐ๋ฅํ ๋๋น์ ๋์ด ํฌ๊ธฐ๋ฅผ ๊ตฌํด์ ๋ฐฐ์ด์ ์ ์ฅํฉ๋๋ค. → width, height
์ด๋ ์นดํซ์ ๊ฐ๋ก ๊ธธ์ด๋ ์ธ๋ก ๊ธธ์ด์ ๊ฐ๊ฑฐ๋ ํฌ๋ฏ๋ก, ํฌ๊ฑฐ๋ ๊ฐ์ ๋ width๋ฐฐ์ด์ ์ถ๊ฐํฉ๋๋ค. - ๋ชจ๋ ๊ฐ๋ฅํ ๋๋น์ ๋์ด๋ ๋ชจ๋ ๊ฒฉ์ ์์ ์ ๊ณฑ๊ทผ๊น์ง๋ง ํ์ํ๋ฉด ๊ตฌํ ์ ์์ต๋๋ค.
- ๋๋น์ ๋์ด๋ฅผ ๋ชจ๋ ๊ตฌํ๋ค๋ฉด ํด๋น ๋๋น์ ๋์ด์ ๋ํด์ brown๊ณผ red๊ฐ์ด ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค.
- ํ์ธํ์ฌ ๋ง๋ค๋ฉด answer๋ฐฐ์ด์ ์ถ๊ฐํ๊ณ ์ข ๋ฃํฉ๋๋ค.
์ฝ๋
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#include <iostream>
#include <vector>
using namespace std;
vector<int> solution(int brown, int red) {
vector<int> answer;
vector<int> width, height;
int total = brown + red;
for (int i = 1; i <= sqrt(total); i++) {
if (!(total % i)) {
int tmp = total / i;
if (i >= tmp) {
width.push_back(i);
height.push_back(tmp);
}
else {
width.push_back(tmp);
height.push_back(i);
}
}
}
for(int i = 0; i < width.size(); i++) {
int w =width[i], h = height[i];
if ((w * 2 + (h - 2) * 2) == brown && (w - 2) * (h - 2) == red) {
answer.push_back(w);
answer.push_back(h);
break;
}
}
return answer;
|
cs |
'๐ฅ PS(Problem Solving) ๐ฅ > programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers] Summer/Winter Coding(2019) ๋ฉ์ฉกํ ์ฌ๊ฐํ (0) | 2020.06.02 |
---|---|
[programmers] 2020 kakao, ๋ฌธ์์ด ์์ถ (0) | 2020.05.12 |
[programmers] ์์ ํ์, ๋ชจ์๊ณ ์ฌ (0) | 2020.03.11 |
[programmers] ์์ ํ์, ์ซ์ ์ผ๊ตฌ (0) | 2020.03.11 |
[programmers] ์์ ํ์, ์์์ฐพ๊ธฐ (0) | 2020.01.17 |
๋๊ธ