[programmers] ์นดํซ - Java
'์นดํซ' ๋ฌธ์ ์์๋ ๊ฐ์ ๊ฒฉ์์ ์์ ๋
ธ๋์ ๊ฒฉ์์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์นดํซ์ ๊ฐ๋ก์ ์ธ๋ก ํฌ๊ธฐ๋ฅผ ๋ฐํํ๋ ํจ์๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด ์ ๊ณฑ๊ทผ๊น์ง๋ง ๋ฐ๋ณตํ์ฌ ์ง์ฌ๊ฐํ์ ๊ฐ๋ฅ์ฑ์ ํ์ธํ๊ณ , ๊ฐ๋ก์ ์ธ๋ก์์ 1์ฉ ๋บ ๊ฐ์ด ๋
ธ๋์ ๊ฒฉ์์ ์์ ์ผ์นํ๋์ง ํ์ธํฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํตํด ๋ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ณ ๋ฏผํ ์ ์์ต๋๋ค.
Feb 26, 2024
์นดํซ
๋ฌธ์ ์ค๋ช
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] |
solution.java
class Solution { public int[] solution(int brown, int yellow) { int total = brown + yellow; int[] result = new int[2]; // ์ ๊ณฑ๊ทผ๊น์ง ๋ฐ๋ณตํ๋ฉด ์ค๋ณต ์์ด ๊ณ์ฐ ๊ฐ๋ฅ for (int i = 1; i <= Math.sqrt(total); i++) { // ๋๋จธ์ง๊ฐ 0์ธ ๊ฒฝ์ฐ ์ง์ฌ๊ฐํ if (total % i == 0) { int row = total / i; int col = i; //๊ฐ๋ก์ ์ธ๋ก์์ 1์ฉ ๋บ ๊ฐ์ด ๋ ธ๋์๊ณผ ์ผ์นํ ๊ฒฝ์ฐ if ((row - 2) * (col - 2) == yellow) { result[0] = row; result[1] = col; break; } } } return result; } }
ํต์ฌ ํค์๋
- ์ ๊ณฑ๊ทผ๊น์ง๋ง ๋ฐ๋ณตํ๋ ๊ฒ์, ๊ฐ๋ก์ ์ธ๋ก ๊ธธ์ด๊ฐ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ๊ธฐ ์ํจ์ด๋ค. ์ ๊ณฑ๊ทผ ์ด์์ ์ซ์์ ๋ํด์๋ ์ด๋ฏธ ํ์ธํ ๊ฒฝ์ฐ์ ๋ฐ๋ํธ ๊ธธ์ด์ ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ง๋ฏ๋ก ์ถ๊ฐ์ ์ธ ๋ฐ๋ณต์ ํ์ํ์ง ์๋ค.
๊ฒฐ๋ก !
ํด๋น ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ด๋ป๊ฒ ํ๋ฉด ๋ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์งค ์ ์์์ง ๊ณ ๋ฏผํ ์ ์์๋ค.
Share article