-
[Algo Rhythm๐บ๐] ํ๋ก๊ทธ๋๋จธ์ค ๊ณ ๋์ kit ์นดํซAlgo Rhythm๐บ๐/Programmers 2020. 7. 10. 19:05
๐ ๋ฌธ์ ์ค๋ช
Leo๋ ์นดํซ์ ์ฌ๋ฌ ๊ฐ๋ค๊ฐ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค์์๋ ๋ ธ๋์์ผ๋ก ์น ํด์ ธ ์๊ณ ํ ๋๋ฆฌ 1์ค์ ๊ฐ์์ผ๋ก ์น ํด์ ธ ์๋ ๊ฒฉ์ ๋ชจ์ ์นดํซ์ ๋ดค์ต๋๋ค.
Leo๋ ์ง์ผ๋ก ๋์์์ ์๊น ๋ณธ ์นดํซ์ ๋ ธ๋์๊ณผ ๊ฐ์์ผ๋ก ์์น ๋ ๊ฒฉ์์ ๊ฐ์๋ ๊ธฐ์ตํ์ง๋ง, ์ ์ฒด ์นดํซ์ ํฌ๊ธฐ๋ ๊ธฐ์ตํ์ง ๋ชปํ์ต๋๋ค.
Leo๊ฐ ๋ณธ ์นดํซ์์ ๊ฐ์ ๊ฒฉ์์ ์ brown, ๋ ธ๋์ ๊ฒฉ์์ ์ yellow๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ์นดํซ์ ๊ฐ๋ก, ์ธ๋ก ํฌ๊ธฐ๋ฅผ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
-
๊ฐ์ ๊ฒฉ์์ ์ brown์ 8 ์ด์ 5,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
-
๋ ธ๋์ ๊ฒฉ์์ ์ yellow๋ 1 ์ด์ 2,000,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
-
์นดํซ์ ๊ฐ๋ก ๊ธธ์ด๋ ์ธ๋ก ๊ธธ์ด์ ๊ฐ๊ฑฐ๋, ์ธ๋ก ๊ธธ์ด๋ณด๋ค ๊น๋๋ค.
๐ฏ ์ด๋ป๊ฒ ํ์๋
class Solution { public int[] solution(int brown, int yellow) { int[] answer = new int[2]; int totalCarpet = brown + yellow; int lPtr = 1, rPtr = totalCarpet; // lPtr -> height, rPtr -> width while(lPtr <= rPtr) { int size = lPtr * rPtr; // height * width if(size > totalCarpet) { rPtr--; continue; } if(size < totalCarpet) { lPtr++; continue; } if(size == totalCarpet) { int yW = rPtr - 2; // yellow width -> width - 2 int yH = lPtr - 2; // yellow height -> height -2 if(yellow == yW * yH) { // found answer[0] = rPtr; answer[1] = lPtr; break; } else { // not found -> increase height lPtr++; } } } return answer; } }
๐ง ์ ์ ๋ ๊ฒ ํ์๋
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ์ฉ๋ ๋๊ฐ์ง ๋ฐ๊ฒฌ๋ค์ด ์๋ค.
๐ต๏ธโ๏ธ ์ฒซ๋ฒ์งธ ๋ฐ๊ฒฌ ๐ต๏ธโ๏ธ
"์ ์ฒด ๊ฒฉ์์ ์์ ์นดํซ์ ๋ชจ์์ 1๋1 ๊ด๊ณ์ด๋ค."
์ ๊ทธ๋ฆผ์์ ๋ณผ ์ ์๋ฏ์ด ์ ์ฒด ๊ฒฉ์์ ์์ ๋ฐ๋ผ ๋ง๋ค ์ ์๋ ์นดํซ์ ๋ชจ์์ ์ ํด์ ธ ์๋ค.
๐ต๏ธโ๏ธ ๋๋ฒ์งธ ๋ฐ๊ฒฌ ๐ต๏ธโ๏ธ
"๋ ธ๋์ ๊ฒฉ์์ ๊ฐ๋ก์ ์ธ๋ก๋ ๊ฐ๊ฐ (์ ์ฒด ๊ฐ๋ก - 2)์ (์ ์ฒด ์ธ๋ก - 2)์ด๋ค."
์ด ๋๊ฐ์ง ๋ฐ๊ฒฌ์ ์ด์ฉํด์ ์ฃผ์ด์ง ์ ์ฒด ๊ฒฉ์์ ์์ ๋ํ์ฌ ๊ฐ๋ฅํ (๊ฐ๋ก, ์ธ๋ก)๋ฅผ ์ฐพ์ ๋ค (์ ์ฒด ๊ฐ๋ก - 2) * (์ ์ฒด ์ธ๋ก - 2) = (๋ ธ๋์ ๊ฒฉ์์ ๊ฐ์) ์ธ์ง๋ฅผ ํ์ธํ๋๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ค.
๐ ๋ฌด์์ ๋ฐฐ์ ๋
ํฌํฌ์ธํฐ ๊ธฐ๋ฒ์ ์ฌ์ฉํด์ ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ ๋ด ์๊ฐ๋ณด๋ค ํจ์ฌ ๊ด๋ฒ์ํ๊ฒ ์ฐ์ด๋ ๊ธฐ๋ฒ์ด์ฌ์ ์ ๊ธฐํ๋ค.
๊ทธ๋ฆฌ๊ณ ์ด ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ๊น์ด ์๊ฐํ๋๋ฐ ์ด๋ฐ ์ต๊ด์ ๊ฐ์ง๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ๋ค.
'Algo Rhythm๐บ๐ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
-