https://school.programmers.co.kr/learn/courses/30/lessons/42842
๋ฌธ์ ์ค๋ช
Leo๋ ์นดํซ์ ์ฌ๋ฌ ๊ฐ๋ค๊ฐ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค์์๋ ๋ ธ๋์์ผ๋ก ์น ํด์ ธ ์๊ณ ํ ๋๋ฆฌ 1์ค์ ๊ฐ์์ผ๋ก ์น ํด์ ธ ์๋ ๊ฒฉ์ ๋ชจ์ ์นดํซ์ ๋ดค์ต๋๋ค.
Leo๋ ์ง์ผ๋ก ๋์์์ ์๊น ๋ณธ ์นดํซ์ ๋ ธ๋์๊ณผ ๊ฐ์์ผ๋ก ์์น ๋ ๊ฒฉ์์ ๊ฐ์๋ ๊ธฐ์ตํ์ง๋ง, ์ ์ฒด ์นดํซ์ ํฌ๊ธฐ๋ ๊ธฐ์ตํ์ง ๋ชปํ์ต๋๋ค.
Leo๊ฐ ๋ณธ ์นดํซ์์ ๊ฐ์ ๊ฒฉ์์ ์ brown, ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์นดํซ์ ๊ฐ๋ก, ์ธ๋ก ํฌ๊ธฐ๋ฅผ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๊ฐ์ ๊ฒฉ์์ ์ brown์ 8 ์ด์ 5,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๋ 1 ์ด์ 2,000,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
- ์นดํซ์ ๊ฐ๋ก ๊ธธ์ด๋ ์ธ๋ก ๊ธธ์ด์ ๊ฐ๊ฑฐ๋, ์ธ๋ก ๊ธธ์ด๋ณด๋ค ๊น๋๋ค.
์ ์ถ๋ ฅ ์
brown | yellow | return |
10 | 2 | [4, 3] |
8 | 1 | [3, 3] |
24 | 24 | [8, 6] |
๋ด ํด๋ต
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int brown, int yellow) {
vector<int> answer;
int total = brown + yellow;
int height = 3; // ์ธ๋ก ์ต์ ํฌ๊ธฐ('์ธ๋ก<=๊ฐ๋ก'์ด๋ฏ๋ก ์ต์ ์ธ๋ก ํฌ๊ธฐ๋ถํฐ ๋น๊ต)
int width = total / height;
// ๋
ธ๋์ ํ์ผ์ ์๋ (width-2)*(height-2) ์ด๋ค.
// yellow == (width-2)*(height-2) ๋ฅผ ๋ง์กฑํ๋ ๊ฐ๋กx์ธ๋ก ๊ฐ์ ์ฐพ์๋๊ฐ๋ค.
while(width >= height)
{
if(yellow == (width-2)*(height-2))
break;
++height;
width = total / height;
}
answer.push_back(width);
answer.push_back(height);
return answer;
}
yellow = (width-2) * (height -2) ๋ผ๋
ํ์ผ ํจํด๊ณผ ๊ฐ๋ก ์ธ๋ก ๊ฐ์ ์ฐ๊ด์ฑ์ ์ฐพ๋ ๊ฒ์ด ์ค์ํ ๋ฌธ์ ์๋ค.
'๐ฅ๏ธ Study Note > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค / level.2 / ๋ ๋งต๊ฒ(C++) (0) | 2023.04.02 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค / level.2 / ํผ๋ก๋(C++) (0) | 2023.04.01 |
ํ๋ก๊ทธ๋๋จธ์ค / level.2 / ์์ ์ฐพ๊ธฐ(C++) (0) | 2023.03.28 |
ํ๋ก๊ทธ๋๋จธ์ค / level.1 / ๋ชจ์๊ณ ์ฌ(C++) (0) | 2023.03.27 |
ํ๋ก๊ทธ๋๋จธ์ค / level.1 / ์ต์์ง์ฌ๊ฐํ(C++) (0) | 2023.03.27 |