๐Ÿ‡๐ŸŽ๐Ÿˆ๐Ÿฅ[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ณผ์ผ ์žฅ์ˆ˜

Chobbyยท2022๋…„ 11์›” 19์ผ
1

Programmers

๋ชฉ๋ก ๋ณด๊ธฐ
150/345

๐Ÿงก๋ฌธ์ œ ์„ค๋ช…

๊ณผ์ผ ์žฅ์ˆ˜๊ฐ€ ์‚ฌ๊ณผ ์ƒ์ž๋ฅผ ํฌ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๊ณผ๋Š” ์ƒํƒœ์— ๋”ฐ๋ผ 1์ ๋ถ€ํ„ฐ k์ ๊นŒ์ง€์˜ ์ ์ˆ˜๋กœ ๋ถ„๋ฅ˜ํ•˜๋ฉฐ, k์ ์ด ์ตœ์ƒํ’ˆ์˜ ์‚ฌ๊ณผ์ด๊ณ  1์ ์ด ์ตœํ•˜ํ’ˆ์˜ ์‚ฌ๊ณผ์ž…๋‹ˆ๋‹ค. ์‚ฌ๊ณผ ํ•œ ์ƒ์ž์˜ ๊ฐ€๊ฒฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

  • ํ•œ ์ƒ์ž์— ์‚ฌ๊ณผ๋ฅผ m๊ฐœ์”ฉ ๋‹ด์•„ ํฌ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒ์ž์— ๋‹ด๊ธด ์‚ฌ๊ณผ ์ค‘ ๊ฐ€์žฅ ๋‚ฎ์€ ์ ์ˆ˜๊ฐ€ p (1 โ‰ค p โ‰ค k)์ ์ธ ๊ฒฝ์šฐ, ์‚ฌ๊ณผ ํ•œ ์ƒ์ž์˜ ๊ฐ€๊ฒฉ์€ p * m ์ž…๋‹ˆ๋‹ค.

๊ณผ์ผ ์žฅ์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋งŽ์€ ์‚ฌ๊ณผ๋ฅผ ํŒ”์•˜์„ ๋•Œ, ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ด์ต์„ ๊ณ„์‚ฐํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.(์‚ฌ๊ณผ๋Š” ์ƒ์ž ๋‹จ์œ„๋กœ๋งŒ ํŒ๋งคํ•˜๋ฉฐ, ๋‚จ๋Š” ์‚ฌ๊ณผ๋Š” ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค)

์˜ˆ๋ฅผ ๋“ค์–ด, k = 3, m = 4, ์‚ฌ๊ณผ 7๊ฐœ์˜ ์ ์ˆ˜๊ฐ€ [1, 2, 3, 1, 2, 3, 1]์ด๋ผ๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด [2, 3, 2, 3]์œผ๋กœ ๊ตฌ์„ฑ๋œ ์‚ฌ๊ณผ ์ƒ์ž 1๊ฐœ๋ฅผ ๋งŒ๋“ค์–ด ํŒ๋งคํ•˜์—ฌ ์ตœ๋Œ€ ์ด์ต์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • (์ตœ์ € ์‚ฌ๊ณผ ์ ์ˆ˜) x (ํ•œ ์ƒ์ž์— ๋‹ด๊ธด ์‚ฌ๊ณผ ๊ฐœ์ˆ˜) x (์ƒ์ž์˜ ๊ฐœ์ˆ˜) = 2 x 4 x 1 = 8

์‚ฌ๊ณผ์˜ ์ตœ๋Œ€ ์ ์ˆ˜ k, ํ•œ ์ƒ์ž์— ๋“ค์–ด๊ฐ€๋Š” ์‚ฌ๊ณผ์˜ ์ˆ˜ m, ์‚ฌ๊ณผ๋“ค์˜ ์ ์ˆ˜ score๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ณผ์ผ ์žฅ์ˆ˜๊ฐ€ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ด์ต์„ returnํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.


๐Ÿ’›์ œํ•œ์‚ฌํ•ญ

  • 3 โ‰ค k โ‰ค 9
  • 3 โ‰ค m โ‰ค 10
  • 7 โ‰ค score์˜ ๊ธธ์ด โ‰ค 1,000,000
  • 1 โ‰ค score[i] โ‰ค k
  • ์ด์ต์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋Š” 0์„ return ํ•ด์ฃผ์„ธ์š”.

๐Ÿ’š์ž…์ถœ๋ ฅ ์˜ˆ

kmscoreresult
34[1, 2, 3, 1, 2, 3, 1]8
43[4, 1, 2, 2, 4, 4, 4, 4, 1, 2, 4, 2]33

๐Ÿ’™์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ๋ฌธ์ œ์˜ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ๊ณผ ์ƒ์ž๋ฅผ ํฌ์žฅํ•˜์—ฌ ๋ชจ๋‘ ํŒ”๋ฉด ์ตœ๋Œ€ ์ด์ต์„ ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ๊ณผ ์ƒ์ž๊ฐ€๊ฒฉ
[1, 1, 2]1 x 3 = 3
[2, 2, 2]2 x 3 = 6
[4, 4, 4]4 x 3 = 12
[4, 4, 4]4 x 3 = 12

๋”ฐ๋ผ์„œ (1 x 3 x 1) + (2 x 3 x 1) + (4 x 3 x 2) = 33์„ returnํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ’œ๋‚˜์˜ ํ’€์ด

function solution(k, m, score) {
    // ์˜ค๋ฆ„์ฐจ ์ˆœ ์ •๋ ฌ
    score = score.sort((a,b) => a-b)
    const box = []
    const len = score.length
    // ๋ฐ•์Šค๋งŒํผ ๋ฐ˜๋ณต
    for(let i = 0 ; i < Math.floor(len/m) ; i ++) {
        const curBox = []
        // ๋‚จ์€ ์‚ฌ๊ณผ ์ ์ˆ˜๋“ค ์ค‘ ์ตœ๊ณ ์ ์œผ๋กœ m๊ฐœ ๋‹ด์Œ
        for(let j = 0 ; j < m ; j ++) {
            curBox.push(score.pop())   
        }
        // ๋ฐ•์Šค์— ์ด๋ฒˆ ๋ฐ•์Šค์˜ ๊ณผ์ผ์„ ๋‹ด์Œ
        box.push(curBox)
    }
    // ์ตœ์ € ์‚ฌ๊ณผ ์ ์ˆ˜ * ํ•œ ์ƒ์ž์— ๋‹ด๊ธด ์‚ฌ๊ณผ ๊ฐœ์ˆ˜์˜ ํ•ฉ
    return box.map(a => Math.min(...a)*m).reduce((a,b) => a+b, 0)
}
profile
๋‚ด ์ง€์‹์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๋‹ดํ•จ

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