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

Chobbyยท2022๋…„ 10์›” 24์ผ
1

Programmers

๋ชฉ๋ก ๋ณด๊ธฐ
144/345

๐Ÿงก๋ฌธ์ œ ์„ค๋ช…

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

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


๐Ÿ’›์ œํ•œ์‚ฌํ•ญ

  • 3 โ‰ค elements์˜ ๊ธธ์ด โ‰ค 1,000
  • 1 โ‰ค elements์˜ ์›์†Œ โ‰ค 1,000

๐Ÿ’š์ž…์ถœ๋ ฅ ์˜ˆ

elementsresult
[7,9,1,1,4]18

๐Ÿ’™์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ๊ธธ์ด๊ฐ€ 1์ธ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด๋กœ๋ถ€ํ„ฐ [1, 4, 7, 9] ๋„ค ๊ฐ€์ง€์˜ ํ•ฉ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธธ์ด๊ฐ€ 2์ธ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด๋กœ๋ถ€ํ„ฐ [2, 5, 10, 11, 16] ๋‹ค์„ฏ ๊ฐ€์ง€์˜ ํ•ฉ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธธ์ด๊ฐ€ 3์ธ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด๋กœ๋ถ€ํ„ฐ [6, 11, 12, 17, 20] ๋‹ค์„ฏ ๊ฐ€์ง€์˜ ํ•ฉ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธธ์ด๊ฐ€ 4์ธ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด๋กœ๋ถ€ํ„ฐ [13, 15, 18, 21] ๋„ค ๊ฐ€์ง€์˜ ํ•ฉ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธธ์ด๊ฐ€ 5์ธ ์—ฐ์† ๋ถ€๋ถ„ ์ˆ˜์—ด๋กœ๋ถ€ํ„ฐ [22] ํ•œ ๊ฐ€์ง€์˜ ํ•ฉ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋“ค ์ค‘ ์ค‘๋ณต๋˜๋Š” ๊ฐ’์„ ์ œ์™ธํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ 18๊ฐ€์ง€์˜ ์ˆ˜๋“ค์„ ์–ป์Šต๋‹ˆ๋‹ค.
  • [1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22]

๐Ÿ’œ๋‚˜์˜ ํ’€์ด

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
}
profile
๋‚ด ์ง€์‹์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๋‹ดํ•จ

0๊ฐœ์˜ ๋Œ“๊ธ€