https://school.programmers.co.kr/learn/courses/30/lessons/42842
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
1. ๋ฌธ์
brown ๋ธ๋ก ๊ฐ์, yellow ๋ธ๋ก ๊ฐ์๊ฐ ์ฃผ์ด์ง๋ค.
์นดํซ์ yellow ๋ธ๋ก๋ค์ ํ ๊ฒน์ผ๋ก ๋๋ฌ์ผ brown ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
์ฌ๊ธฐ์ ์นดํซ์ ํญ์ ๊ฐ๋ก๊ธธ์ด๊ฐ ์ธ๋ก๊ธธ์ด๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๋ค.
์นดํซ์ ๊ฐ๋ก, ์ธ๋ก ํฌ๊ธฐ๋ฅผ return ํ๋ ๋ฌธ์ ์ด๋ค.
2. ํ์ด
์ฝ์๋ฅผ ์ด์ฉํด์ ํ์๋ค. ํ์ง๋ง 4,6,7,9 ํ ์ผ์์ ๊ณ์ ์ค๋ฅ๊ฐ ๋์ ์ ๋ถ ๋ฐ๊ณ ๋ค์ ํ์๋๋ ํ๋ ธ๋ค.
1. yellow ์ธ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก 1๋ถํฐ ์ ์ฐจ ๋๋ ค๋๊ฐ๊ณ ,
- yellow๋ฅผ ์ธ๋ก๋ก ๋๋ด์ ๋ ๋๋์ด๋จ์ด์ง์ง ์์ผ๋ฉด continue,
- ์ธ๋ก๊ฐ yellow๋ฅผ ์ธ๋ก๋ก ๋๋ ๊ฐ(๊ฐ๋ก)๋ณด๋ค ํฌ๋ฉด break ํด์ค์ ๋ ์ด์ ๋ณด์ง ์์๋ค.
2. ์ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ ๊ฒฝ์ฐ ์ด ๊ฐ์๊ฐ ๋ง๋์ง ์ฒดํฌํด์ค์ผ ํ๋ค. (์ด๊ฑธ ๋์ณ์ 4,6,7,9๋ฅผ ํ๋ ธ๋ค.)
- ์ ์กฐ๊ฑด๋ค์ ๊ฑฐ์น๋ฉด yellow์ ์ธ๋ก, ๊ฐ๋ก์ ๋์์ brown์ ์ธ๋ก, ๊ฐ๋ก๊ฐ ๋ง๋ค์ด์ง๋ค. ์ฌ๊ธฐ์ ๋์ด ์๋๋ผ
- brown์ ๊ฐ๋ก*์ธ๋ก๊ฐ brown+yellow์ ๋ง์ง ์์ ์๋ ์๊ธฐ ๋๋ฌธ์ด๋ค.
3. ์ฝ๋
import java.io.*;
import java.util.*;
class Solution {
public int[] solution(int brown, int yellow) {
int ansW = 0;
int ansH = 0;
//๋
ธ๋์ ์ธ๋ก ๊ธฐ์ค
for (int yH = 1; yH <= yellow; yH++) {
if (yellow % yH != 0) continue; //๊ฐ๋ก๋ ์์ฐ์์ฌ์ผ ํจ
if (yH > yellow/yH) break; //๋ฌธ์ ์กฐ๊ฑด: ๊ฐ๋ก>=์ธ๋ก
int yW = yellow/yH;
int bH = yH+2;
int bW = yW+2;
//ํ์ ์กฐ๊ฑด) ๋
ธ๋์์ ๊ฐ๋ก, ์ธ๋ก ์ด์ฉ-> ์ด ๊ฐ์ ๋ง์กฑํ๋์ง check
if (bH * bW == brown+yellow) {
ansW = bW;
ansH = bH;
}
}
return new int[] {ansW, ansH};
}
}
4. ์ฌ๋ด
์๋ณด์ผ ๋ ๋ฐ๊ณ ๋ค์ ํธ๋ ๊ฒ๋ ๋ฐฉ๋ฒ์ธ๋ฏํ๋ค
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์ด์ค์ฐ์ ์์ํ - Java (0) | 2023.08.17 |
---|---|
[Programmers] ์ ํ์ ์๊ฐ์ด๋ - Java (0) | 2023.08.11 |
[Programmers] ๊ตฌ๋ช ๋ณดํธ - Java (0) | 2023.07.10 |
[Programmers] ์์ด ๋๋ง์๊ธฐ - Java (0) | 2023.01.09 |
[Programmers] ๊ทค๊ณ ๋ฅด๊ธฐ - Java (0) | 2023.01.04 |