๊ด€๋ฆฌ ๋ฉ”๋‰ด

Daehyunii's Dev-blog

K๋ฒˆ์งธ ํฐ ์ˆ˜(์™„์ „ ํƒ์ƒ‰) ๋ณธ๋ฌธ

๐Ÿ“š Language & CS knowledge/Algorithm (๊ธฐ์ดˆ๋ฌธ์ œํ’€์ด)

K๋ฒˆ์งธ ํฐ ์ˆ˜(์™„์ „ ํƒ์ƒ‰)

Daehyunii 2022. 8. 31. 23:53

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ)

 

ํ˜„์ˆ˜๋Š” 1๋ถ€ํ„ฐ 100์‚ฌ์ด์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ ํžŒ N์žฅ์˜ ์นด๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ์ˆซ์ž์˜ ์นด๋“œ๊ฐ€ ์—ฌ๋Ÿฌ์žฅ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜„์ˆ˜๋Š” ์ด ์ค‘ 3์žฅ์„ ๋ฝ‘์•„ ๊ฐ ์นด๋“œ์— ์ ํžŒ ์ˆ˜๋ฅผ ํ•ฉํ•œ ๊ฐ’์„ ๊ธฐ๋กํ•˜๋ ค ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 3์žฅ์„ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋กํ•œ ๊ฐ’ ์ค‘ K๋ฒˆ์งธ๋กœ ํฐ ์ˆ˜๋ฅผ ์ถœ๋ ฅ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

๋งŒ์•ฝ ํฐ ์ˆ˜๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์ง„ ์ˆ˜๊ฐ€ 25 25 23 23 22 20 19......์ด๊ณ  K๊ฐ’์ด 3์ด๋ผ๋ฉด K๋ฒˆ์งธ ํฐ ๊ฐ’ ์€ 22์ž…๋‹ˆ๋‹ค.

โ–ฃ ์ž…๋ ฅ์„ค๋ช…
์ฒซ ์ค„์— ์ž์—ฐ์ˆ˜ N(3<=N<=100)๊ณผ K(1<=K<=50) ์ž…๋ ฅ๋˜๊ณ , ๊ทธ ๋‹ค์Œ ์ค„์— N๊ฐœ์˜ ์นด๋“œ๊ฐ’์ด ์ž…๋ ฅ ๋œ๋‹ค.

 

โ–ฃ ์ถœ๋ ฅ์„ค๋ช…
์ฒซ ์ค„์— K๋ฒˆ์งธ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. K๋ฒˆ์งธ ์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ 1
10 3
13 15 34 23 45 65 33 11 26 42

 

โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ 1

143

 

Tip

 

 

๋ฌธ์ œํ’€์ด

//์ •๋‹ต
    function solution(n, k, card){
        let answer;
        let tmp = new Set();
        for(let i=0; i<n-2; i++){ // ์ด๋ ‡๊ฒŒ ํฌ๋ฌธ์„ ์ž‘์„ฑํ•˜๋ฉด ๊ตณ์ด ์กฐ๊ฑด๋ฌธ์„ ๋˜ ์“ธ ํ•„์š” ์—†์Œ
            for(let j=i+1; j<n-1; j++){
                for(let k=j+1; k<n; k++){
                    tmp.add(card[i]+card[j]+card[k]); 
                    //Set๊ฐ์ฒด๋ฅผ ์ด์šฉํ•˜๋ฉด ์• ์ดˆ์— ์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ๋”ฐ๋กœํ•  ํ•„์š” ์—†์Œ
                    //๋‹ค๋งŒ set๊ฐ์ฒด๋Š” sort()๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Œ
                    //๊ทธ๋ž˜์„œ ์ •๋ ฌํ• ๋•Œ๋Š” set๊ฐ์ฒด๋ฅผ array๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผํ•จ!
                    //๋ฐ‘์— Array.from(tmp)๊ฐ€ set๊ฐ์ฒด๋ฅผ array๋กœ ๋ณ€๊ฒฝํ•œ๊ฒƒ์ž„
                }
            }
        }
        let a=Array.from(tmp).sort((a, b)=>b-a);
        //Array.from์œผ๋กœ set๊ฐ์ฒด๋ฅผ ๋ฐฐ์—ด๋กœ ๋ณ€๊ฒฝ
        //sort์— b-a๋กœ ํ•˜๋ฉด ๊ตณ์ด reverse()๋ฅผ ์‚ฌ์šฉํ•  ํ•„์š” ์—†์Œ(๋‚ด๋ฆผ์ฐจ์ˆœ์ด ๋จ)
        //์ฐธ๊ณ ๋กœ a-b๋กœํ•˜๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ์ด ๋จ
        answer=a[k-1];
        return answer;
    }
    
    let arr2=[13, 15, 34, 23, 45, 65, 33, 11, 26, 42];
    console.log(solution(10, 3, arr2));