
์ฒ ํธ๋ ์์ด์ ๊ฐ์ง๊ณ ๋๊ธฐ ์ข์ํฉ๋๋ค. ์ด๋ ๋ ์ฒ ํธ๋ ์ด๋ค ์์ฐ์๋ก ์ด๋ฃจ์ด์ง ์ํ ์์ด์ ์ฐ์ํ๋ ๋ถ๋ถ ์์ด์ ํฉ์ผ๋ก ๋ง๋ค ์ ์๋ ์๊ฐ ๋ชจ๋ ๋ช ๊ฐ์ง์ธ์ง ์์๋ณด๊ณ ์ถ์ด์ก์ต๋๋ค. ์ํ ์์ด์ด๋ ์ผ๋ฐ์ ์ธ ์์ด์์ ์ฒ์๊ณผ ๋์ด ์ฐ๊ฒฐ๋ ํํ์ ์์ด์ ๋งํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์์ด [7, 9, 1, 1, 4] ๋ก ์ํ ์์ด์ ๋ง๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค.

์ํ ์์ด์ ์ฒ์๊ณผ ๋์ด ์ฐ๊ฒฐ๋์ด ๋๊ธฐ๋ ๋ถ๋ถ์ด ์๊ธฐ ๋๋ฌธ์ ์ฐ์ํ๋ ๋ถ๋ถ ์์ด๋ ์ผ๋ฐ์ ์ธ ์์ด๋ณด๋ค ๋ง์์ง๋๋ค.
์ํ ์์ด์ ๋ชจ๋  ์์ elements๊ฐ ์์๋๋ก ์ฃผ์ด์ง ๋, ์ํ ์์ด์ ์ฐ์ ๋ถ๋ถ ์์ด ํฉ์ผ๋ก ๋ง๋ค ์ ์๋ ์์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
elements์ ๊ธธ์ด โค 1,000elements์ ์์ โค 1,000| elements | result | 
|---|---|
| [7,9,1,1,4] | 18 | 
์ ์ถ๋ ฅ ์ #1
function solution(elements) {
    // elements์ ๋ง์ง๋ง ์์์์ elements.length๋ฒ ๋ฐ๋ณตํ๊ธฐ์ ๋ฐฐ์ด์ด ์งง๊ธฐ ๋๋ฌธ์ ๋ง๋ถ์ฌ์ ๋ง๋ค์ด์ค
    let roundElements = [...elements, ...elements]
    // ์ค๋ณต ์ ๊ฑฐ๋ฅผ ์ํ Set์ฌ์ฉ
    const set = new Set()
    // ๋ช ๊ฐ์ฉ ์ฐ๊ฒฐํ ๊ฑด์ง
    for(let i = 1 ; i <= elements.length ; i ++) {
        // ์์ ๋ฐ๋ณต
        for(let j = 0 ; j < elements.length ; j ++) {
            set.add(roundElements.slice(j,j+i).reduce((a,b) => a+b, 0))
        }
    }
    // Set์ ๊ธธ์ด ๋ฐํ
    return set.size
}