Divisible Sum Pairs

ํ•ฉํ•ด์„œ ๋‚˜๋ˆ ๋–จ์–ด์ง€๋Š” ์Œ ์ฐพ๊ธฐ

๋ฌธ์ œ

์ •์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด ar๊ณผ ์–‘์˜ ์ •์ˆ˜ k๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ๋ฐฐ์—ด ์›์†Œ๋“ค์˜ ์Œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

i < j ์ด๋‹ค. ar[i] + ar[j] ๋Š” k์˜ ๋ฐฐ์ˆ˜์ด๋‹ค.

์˜ˆ๋ฅผ๋“ค์–ด, ar = [1, 2, 3, 4, 5, 6] ์ด๊ณ  k = 5 ์ผ๋•Œ, ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์Œ์€ [1, 4], [2, 3], [4, 6] ์„ธ ์Œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฒฐ๊ณผ๊ฐ’์€ 3์ด ๋‚˜์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

/*
* @param {number} k
* @param {numnber[]} ar
* @return {number}
*/
divisibleSumPairs(k, ar) {
    //code
}

๋ฌธ์ œ ์ดํ•ด

๋ฐฐ์—ด ar์˜ ์›์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  k์˜ ๋ฐฐ์ˆ˜๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ํŠน์ดํ•œ ์ ์€

i < j ์ด๋‹ค. ar[i] + ar[j] ๋Š” k์˜ ๋ฐฐ์ˆ˜์ด๋‹ค.

์ฒซ๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ ๋‘๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž๋ณด๋‹ค ์ธ๋ฑ์Šค ์ˆ˜๊ฐ€ ํฌ๋ฉด ์•ˆ๋œ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

  1. ๊ฒฐ๊ณผ๊ฐ’์„ ๋‚˜ํƒ€๋‚ผ count ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค.

  2. forEach๋ฌธ ์•ˆ์— for๋ฌธ์„ ์จ forEach๋ฌธ์€ ์ฒซ๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๊ตฌํ•˜๊ณ  for๋ฌธ์œผ๋กœ ์ดˆ๊ธฐ๋ฌธ์„ ์ฒซ๋ฒˆ์งธ ํ”ผ์—ฐ์‚ฐ์ž๋ณด๋‹ค +1ํ•œ ๊ฐ’์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค.

  3. ๋‘ ๊ฐ’์„ ๋”ํ•œ๋‹ค.

  4. % ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด ๋‚˜๋จธ์ง€๊ฐ€ 0์ผ ๊ฒฝ์šฐ count ๋ณ€์ˆ˜์— +1 ํ•ด์ค€๋‹ค.

์ฝ”๋“œ ๊ตฌํ˜„

function divisibleSumPairs(k, ar) {
  // Complete the divisibleSumPairs function.
  let count = 0;

  ar.forEach((num,idx) => {
    for (let j = (idx + 1); j < ar.length; j++) {
      if ((num+ar[j])%k === 0) {
        count++  
      }
    }    
  });
  return count;
}

๊ฒฐ๊ณผ ๋ถ„์„

ํ…Œ์ŠคํŠธ ํ†ต๊ณผ

Last updated

Was this helpful?