์ต์์ง์ฌ๊ฐํ
๋ช ํจ ์ง๊ฐ์ ๋ง๋๋ ํ์ฌ์์ ์ง๊ฐ์ ํฌ๊ธฐ๋ฅผ ์ ํ๋ ค๊ณ ํฉ๋๋ค. ๋ค์ํ ๋ชจ์๊ณผ ํฌ๊ธฐ์ ๋ช ํจ๋ค์ ๋ชจ๋ ์๋ฉํ ์ ์์ผ๋ฉด์, ์์์ ๋ค๊ณ ๋ค๋๊ธฐ ํธํ ์ง๊ฐ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์๊ฑด์ ๋ง์กฑํ๋ ์ง๊ฐ์ ๋ง๋ค๊ธฐ ์ํด ๋์์ธํ์ ๋ชจ๋ ๋ช ํจ์ ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๋ฅผ ์กฐ์ฌํ์ต๋๋ค. ์๋ ํ๋ 4๊ฐ์ง ๋ช ํจ์ ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๋ฅผ ๋ํ๋ ๋๋ค.
๋ช ํจ ๋ฒํธ | ๊ฐ๋ก ๊ธธ์ด | ์ธ๋ก ๊ธธ์ด |
---|---|---|
1 | 60 | 50 |
2 | 30 | 70 |
3 | 60 | 30 |
4 | 80 | 40 |
๊ฐ์ฅ ๊ธด ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๊ฐ ๊ฐ๊ฐ 80, 70์ด๊ธฐ ๋๋ฌธ์ 80(๊ฐ๋ก) x 70(์ธ๋ก) ํฌ๊ธฐ์ ์ง๊ฐ์ ๋ง๋ค๋ฉด ๋ชจ๋ ๋ช ํจ๋ค์ ์๋ฉํ ์ ์์ต๋๋ค. ํ์ง๋ง 2๋ฒ ๋ช ํจ์ ๊ฐ๋ก๋ก ๋ํ ์๋ฉํ๋ค๋ฉด 80(๊ฐ๋ก) x 50(์ธ๋ก) ํฌ๊ธฐ์ ์ง๊ฐ์ผ๋ก ๋ชจ๋ ๋ช ํจ๋ค์ ์๋ฉํ ์ ์์ต๋๋ค. ์ด๋์ ์ง๊ฐ ํฌ๊ธฐ๋ 4000(=80 x 50)์ ๋๋ค. ๋ชจ๋ ๋ช ํจ์ ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๋ฅผ ๋ํ๋ด๋ 2์ฐจ์ ๋ฐฐ์ด sizes๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ชจ๋ ๋ช ํจ์ ์๋ฉํ ์ ์๋ ๊ฐ์ฅ ์์ ์ง๊ฐ์ ๋ง๋ค ๋, ์ง๊ฐ์ ํฌ๊ธฐ๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์กฐ๊ฑด
* sizes์ ๊ธธ์ด๋ 1 ์ด์ 10,000 ์ดํ์
๋๋ค.
* sizes์ ์์๋ [w, h] ํ์์
๋๋ค.
* w๋ ๋ช
ํจ์ ๊ฐ๋ก ๊ธธ์ด๋ฅผ ๋ํ๋
๋๋ค.
* h๋ ๋ช
ํจ์ ์ธ๋ก ๊ธธ์ด๋ฅผ ๋ํ๋
๋๋ค.
* w์ h๋ 1 ์ด์ 1,000 ์ดํ์ธ ์์ฐ์์
๋๋ค.
์ ์ถ๋ ฅ ์
์
์ถ๋ ฅ ์ #1
๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค.
์
์ถ๋ ฅ ์ #2
๋ช
ํจ๋ค์ ์ ์ ํ ํ์ ์์ผ ๊ฒน์ณค์ ๋, 3๋ฒ์งธ ๋ช
ํจ(๊ฐ๋ก: 8, ์ธ๋ก: 15)์ด ๋ค๋ฅธ ๋ชจ๋ ๋ช
ํจ๋ณด๋ค ํฌ๊ธฐ๊ฐ ํฝ๋๋ค. ๋ฐ๋ผ์ ์ง๊ฐ์ ํฌ๊ธฐ๋ 3๋ฒ์งธ ๋ช
ํจ์ ํฌ๊ธฐ์ ๊ฐ์ผ๋ฉฐ, 120(=8 x 15)์ return ํฉ๋๋ค.
์
์ถ๋ ฅ ์ #3
๋ช
ํจ๋ค์ ์ ์ ํ ํ์ ์์ผ ๊ฒน์ณค์ ๋, ๋ชจ๋ ๋ช
ํจ์ ํฌํจํ๋ ๊ฐ์ฅ ์์ ์ง๊ฐ์ ํฌ๊ธฐ๋ 133(=19 x 7)์
๋๋ค.
sizes | result |
---|---|
[[60, 50], [30, 70], [60, 30], [80, 40]] | 4000 |
[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] | 120 |
[[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] | 133 |
๋ฌธ์ ํ์ด
๊ฐ๋ก ํน์ ์ธ๋ก๊ฐ ๊ธธ๋๋ผ๋ ๋ช ํจ์ ํ์ ํ ์ ์๊ธฐ์ ๊ฐ๋ก์ ์ธ๋ก ์ค ๋ ํฐ ๊ฐ์ ๊ฐ๋ก์, ์์ ๊ฐ์ ์ธ๋ก๊ฐ ๋๋๋ก ๋ช ํจ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ ๋ค์ "๊ฐ๋ก ๊ธธ์ด ์ค ์ต๋๊ฐ x ์ธ๋ก ๊ธธ์ด ์ค ์ต๋๊ฐ"์ ํตํด ๋ชจ๋ ๋ช ํจ์ด ๋ค์ด๊ฐ ์ต์ ํฌ๊ธฐ๋ฅผ ๊ตฌํ ์ ์๋ค.
function solution(sizes) {
let arr = sizes.map(size => size[0] > size[1] ? [size[0], size[1]] : [size[1], size[0]]);
const width = [];
const height = [];
for (let i = 0; i < arr.length; i++) {
width.push(arr[i][0]);
height.push(arr[i][1]);
}
return Math.max(...width) * Math.max(...height);
}
๋ค๋ฅธ ํ์ด ๋ฐฉ์
reduce๋ฅผ ํตํด ๊ฐ๋จํ ํ์ด๋ ๊ฐ๋ฅํ๋ค.
function solution(sizes) {
const [hor, ver] = sizes.reduce(([h, v], [a, b]) => [Math.max(h, Math.max(a, b)), Math.max(v, Math.min(a, b))], [0, 0])
return hor * ver;
}
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.2 : ์ต๋๊ฐ๊ณผ ์ต์๊ฐ (4) | 2022.12.12 |
---|---|
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ (5) | 2022.12.08 |
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : ์ซ์ ์ง๊ฟ (2) | 2022.12.07 |
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : ์ฒด์ก๋ณต (2) | 2022.12.05 |
[Algorithm] ํ๋ก๊ทธ๋๋จธ์ค Lv.1 : ํฐ์ผ๋ชฌ (1) | 2022.12.05 |
๋๊ธ