Jieunny์˜ ๋ธ”๋กœ๊ทธ

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜ ๋ณธ๋ฌธ

Study/Coding Test

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์˜ ๊ฐœ์ˆ˜

Jieunny 2023. 3. 3. 11:06

๐Ÿ“Œ  ๋ฌธ์ œ

๋ฌธ์ œ ์„ค๋ช…

์ฒ ํ˜ธ๋Š” ์ˆ˜์—ด์„ ๊ฐ€์ง€๊ณ  ๋†€๊ธฐ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋Š ๋‚  ์ฒ ํ˜ธ๋Š” ์–ด๋–ค ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์›ํ˜• ์ˆ˜์—ด์˜ ์—ฐ์†ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด์˜ ํ•ฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜๊ฐ€ ๋ชจ๋‘ ๋ช‡ ๊ฐ€์ง€์ธ์ง€ ์•Œ์•„๋ณด๊ณ  ์‹ถ์–ด์กŒ์Šต๋‹ˆ๋‹ค. ์›ํ˜• ์ˆ˜์—ด์ด๋ž€ ์ผ๋ฐ˜์ ์ธ ์ˆ˜์—ด์—์„œ ์ฒ˜์Œ๊ณผ ๋์ด ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ์˜ ์ˆ˜์—ด์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ˆ˜์—ด [7, 9, 1, 1, 4] ๋กœ ์›ํ˜• ์ˆ˜์—ด์„ ๋งŒ๋“ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.


์›ํ˜• ์ˆ˜์—ด์€ ์ฒ˜์Œ๊ณผ ๋์ด ์—ฐ๊ฒฐ๋˜์–ด ๋Š๊ธฐ๋Š” ๋ถ€๋ถ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ์†ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด๋„ ์ผ๋ฐ˜์ ์ธ ์ˆ˜์—ด๋ณด๋‹ค ๋งŽ์•„์ง‘๋‹ˆ๋‹ค.
์›ํ˜• ์ˆ˜์—ด์˜ ๋ชจ๋“  ์›์†Œ elements๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์›ํ˜• ์ˆ˜์—ด์˜ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด ํ•ฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.


์ œํ•œ์‚ฌํ•ญ
  • 3 ≤ elements์˜ ๊ธธ์ด ≤ 1,000
  • 1 ≤ elements์˜ ์›์†Œ ≤ 1,000

 

๐Ÿ’ก  ์•„์ด๋””์–ด

์›ํ˜• ์ˆ˜์—ด์ด๋‹ˆ๊นŒ elements๋ฅผ concat์œผ๋กœ ํ•ฉ์ณ์„œ ๋งŒ๋“ค์–ด์ฃผ๊ณ , ๋Œ€์‹  for๋ฌธ์€ elements ๋งŒํผ๋งŒ ๋ˆ๋‹ค.

๊ฒน์น˜๋Š” ํ•ฉ์€ ์ œ๊ฑฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ set์„ ์‚ฌ์šฉํ•ด์ค€๋‹ค.

0๋ถ€ํ„ฐ 1๊ฐœ, 2๊ฐœ, 3, 4๊ฐœ, 5๊ฐœ๊นŒ์ง€ ๋Œ๊ณ , j๊ฐœ ์ฆ๊ฐ€ํ•˜๋ฉด 1๋ถ€ํ„ฐ 1๊ฐœ, 2๊ฐœ...๋Œ๋ฉด์„œ ํ•ฉ์„ ๊ตฌํ•ด์ค€๋‹ค.

ํ•ฉ์„ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜ sum์€ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์คฌ๋‹ค.

 

 

โœ๏ธ  ํ’€์ด

function solution(elements) {
  var answer = 0;
  let set = new Set();
  let doubleElements = elements.concat(elements);
  for(let i=0; i<elements.length; i++){
    for(let j=0; j<elements.length; j++){
      set.add(sum(doubleElements.slice(j, j+i+1)))
    }
  }
  answer = set.size;
  return answer;
}

function sum(arr){
  let sum = 0;
  for(let i of arr){
    sum+=i;
  }
  return sum;
}