๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Programmers

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ : ๊ณผ์ผ ์žฅ์ˆ˜

by ์ฝ”ํŒŒ์นด 2022. 11. 29.
728x90

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ : ๊ณผ์ผ ์žฅ์ˆ˜

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต > ์—ฐ์Šต๋ฌธ์ œ > ๊ณผ์ผ ์žฅ์ˆ˜


๐Ÿ’ฉ ๋ฌธ์ œ ์„ค๋ช…

๊ณผ์ผ ์žฅ์ˆ˜๊ฐ€ ์‚ฌ๊ณผ ์ƒ์ž๋ฅผ ํฌ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๊ณผ๋Š” ์ƒํƒœ์— ๋”ฐ๋ผ 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 ํ•ด์ฃผ์„ธ์š”.

๐Ÿ’ฉ ๋ฌธ์ œ ํ’€์ด

function solution(k, m, score) {
    // k : ์ตœ์ƒํ’ˆ ์‚ฌ๊ณผ ์ ์ˆ˜
    // m : ์‚ฌ๊ณผ๋ฅผ ๋‹ด๋Š” ๊ฐœ์ˆ˜
    let answer = 0;
    let apples = score.sort((a, b) => b - a);
    let applebox = Math.floor(apples.length/m)
    let price = 0;
    for(i=1; i<=applebox; i++){
        price += apples[i * m - 1] * m
    }
    return price;
}

์ฒ˜์Œ์— applebox๋ฅผ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์„œ ์ง์ ‘ ์‚ฌ๊ณผ๋“ค์„ ๋‹ด์•˜์—ˆ๋Š”๋ฐ ์ž๊พธ ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋˜์–ด์„œ ์งœ์ฆ์ด ๋‚ฌ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๊ตณ์ด ๋‹ด์„ ํ•„์š” ์—†์ด, ์ •๋ ฌํ•œ ์ƒํƒœ์—์„œ m๋ฒˆ์งธ์— ์žˆ๋Š” ์‚ฌ๊ณผ์˜ ์ ์ˆ˜์— m์„ ๊ณฑํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜๋”๋ผ๊ณ ์š”. ๋” ์งœ์ฆ์ด ๋‚ฌ์ง€๋งŒ ์•„๋ฌดํŠผ ํ’€์—ˆ์œผ๋‹ˆ๊นŒ ๋์Šต๋‹ˆ๋‹ค.

๐Ÿ’ฉ ๋‹ค๋ฅธ ํ’€์ด

solution = (_, m, s) => s.sort().filter((_, i) => !((s.length - i) % m)).reduce((a, v) => a + v, 0) * m

filter() ๋ถ€๋ถ„์ด ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ ๋˜๋Š”๋ฐ ๋ฌธ์ œ๋ฅผ 2000๋ช…๋ฐ–์— ์•ˆ ํ’€์–ด์„œ ๊ทธ๋Ÿฐ์ง€ ๋‹ค๋ฅธ ํ’€์ด๋„ ๋”ฑํžˆ ์—†๊ณ  ํ•ด์„ค๋„ ์—†๋„ค์š”. ์—‰์—‰~

728x90

๋Œ“๊ธ€

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿฆ™

CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘