[ 2023-08-31 ๐Ÿช… TIL ]

Burkeyยท2023๋…„ 8์›” 31์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
154/157

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV. 1 ์ตœ์†Œ์ง์‚ฌ๊ฐํ˜• JS


๋ฌธ์ œ

๋ช…ํ•จ ์ง€๊ฐ‘์„ ๋งŒ๋“œ๋Š” ํšŒ์‚ฌ์—์„œ ์ง€๊ฐ‘์˜ ํฌ๊ธฐ๋ฅผ ์ •ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ๋ชจ์–‘๊ณผ ํฌ๊ธฐ์˜ ๋ช…ํ•จ๋“ค์„ ๋ชจ๋‘ ์ˆ˜๋‚ฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉด์„œ, ์ž‘์•„์„œ ๋“ค๊ณ  ๋‹ค๋‹ˆ๊ธฐ ํŽธํ•œ ์ง€๊ฐ‘์„ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์š”๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ง€๊ฐ‘์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋””์ž์ธํŒ€์€ ๋ชจ๋“  ๋ช…ํ•จ์˜ ๊ฐ€๋กœ ๊ธธ์ด์™€ ์„ธ๋กœ ๊ธธ์ด๋ฅผ ์กฐ์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ํ‘œ๋Š” 4๊ฐ€์ง€ ๋ช…ํ•จ์˜ ๊ฐ€๋กœ ๊ธธ์ด์™€ ์„ธ๋กœ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๋ช…ํ•จ๋ฒˆํ˜ธ๊ฐ€๋กœ ๊ธธ์ด์„ธ๋กœ ๊ธธ์ด
16050
23070
36030
48040

๊ฐ€์žฅ ๊ธด ๊ฐ€๋กœ ๊ธธ์ด์™€ ์„ธ๋กœ ๊ธธ์ด๊ฐ€ ๊ฐ๊ฐ 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 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

sizesresult
[[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

์ฝ”๋”ฉ

function solution(sizes) {
    let maxW = 0
    let maxH = 0
    let all = sizes.map(([w, h]) => {
        if(w > h) return [w, h]
        else return [h, w]
    }) // ์„ธ๋กœ๊ฐ€ ๊ธธ์–ด๋„ ๋ชจ๋‘ ๊ฐ€๋กœ๊ฐ€ ๊ธธ์€ ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ”์„œ ์ €์žฅํ•ด์ค€๋‹ค.
    
    all.forEach(([w, h]) => {
        maxW = Math.max(maxW, w)
        maxH = Math.max(maxH, h)
    }) // ๊ฐ€๋กœ๊ฐ€ ๋ฌด์กฐ๊ฑด ๊ธด ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•œ ๋’ค์—์„œ ๊ฐ€๋กœ์™€ ์„ธ๋กœ์˜ ๊ธธ์ด๊ฐ€ ๊ฐ€์žฅ ๊ธด ๊ฐ’๋“ค์„ ๊ตฌํ•œ๋‹ค.
    return maxW * maxH
}
profile
์Šคํƒฏ ์˜ฌ๋ฆฌ๋Š” ์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€