๐Ÿ”’Algorithm

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜(lv2)

devWarrior 2023. 6. 30. 21:00

๋ฌธ์ œ ๐Ÿ”ฝ

https://school.programmers.co.kr/learn/courses/30/lessons/131701

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๋‹ค๋ฅธ์‚ฌ๋žŒ ํ’€์ด ๐Ÿ”ฝ

function solution(elements) {
    const circular = elements.concat(elements);
    const set = new Set();
    for (let i = 0; i < elements.length; i++) {
        let sum = 0;
        for (let j = 0; j < elements.length; j++) {
            sum += circular[i + j];
            set.add(sum);
        }
    }
    return set.size;
}

๋‚ดํ’€์ด๐Ÿ”ฝ

1. ์‹คํŒจ โŒ  => ( ์ด์œ ๋ฅผ ๋ชจ๋ฅด๊ฒ ๋‹ค .. )   

function solution(elements) {
    var answer = 0;
    let stack = []
    
    for(let i=1; i<=elements.length; i++){
        for(let j=0; j<elements.length; j++){
            let sum =0;
            for(let z=j; z<j+i; z++){
                if(z>=elements.length){
                    sum+=elements[z-elements.length+1]
                }else{
                    sum+=elements[z]    
                }
            }   
            stack.push(sum)
        }
    }
    answer = new Set(stack)
    answer = [...answer]
    return answer.length;
}

2. ์„ฑ๊ณต โญ•  =>   

function solution(elements) {
    var answer = 0;
    let set = new Set()
    for(let i=0; i<elements.length; i++){
        let sum =0;
        for(let j=1; j<=elements.length; j++){
               sum+=elements[(i+j-1)%elements.length]
                set.add(sum)
        }
    }
    return set.size;
}

 

๋А๋‚€์ ๐Ÿ”ฝ

set ๊ฐ์ฒด์— ๋Œ€ํ•œ ๊ณต๋ถ€๋ฅผ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

set ๊ฐ์ฒด๋ฅผ ํ•œ๋งˆ๋””๋กœ ์ •์˜ํ•˜๋ฉด ์œ ์ผ๊ฐ’๋งŒ์„ ์ €์žฅํ•˜๋Š” ๊ฐ์ฒด์ด๋‹ค

์ž์„ธํ•œ ์‚ฌํ•ญ์€ MDN์„ ํ†ตํ•ด ํ™•์ธํ•ด๋ณด์ž! 

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Set

 

Set - JavaScript | MDN

Set ๊ฐ์ฒด๋Š” ์ž๋ฃŒํ˜•์— ๊ด€๊ณ„ ์—†์ด ์›์‹œ ๊ฐ’๊ณผ ๊ฐ์ฒด ์ฐธ์กฐ ๋ชจ๋‘ ์œ ์ผํ•œ ๊ฐ’์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

developer.mozilla.org