avatar
Published on

Codility - Perm missing elem

Author
  • avatar
    Name
    yceffort

3-2 Perm Missing Elem

๋ฌธ์ œ

๊ธธ์ด N์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด A์€, 1๋ถ€ํ„ฐ N+1 ์˜ ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ ๋น ์ง„ ์ˆซ์ž๋ฅผ ์ฐพ์•„๋ผ.

A[0] = 2
A[1] = 3
A[2] = 1
A[3] = 5

4 ๊ฐ€ ๋ˆ„๋ฝ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ, ์ •๋‹ต์€ 4 ๋‹ค.

ํ’€์ด

function solution(A) {
  if (!A.length) {
    return 1
  }

  // ์‚ฌ์ด์ฆˆ
  const size = A.length
  // ํ•œ๊ฐœ๋ฅผ ๋นผ๋จน์—ˆ์œผ๋ฏ€๋กœ, ์ตœ๋Œ€ ์ˆซ์ž๋Š” ํ•œ๊ฐœ๋ฅผ ๋” ๊ฐ”์„ ๊ฒƒ์ด๋‹ค.
  // ํ•œ๊ฐœ๋ฅผ ๋” ๊ฐ„ ์ˆซ์ž๋“ค์˜ ํ•ฉ์„ ๊ตฌํ•œ๋‹ค.
  let sum = ((size + 1) * (size + 2)) / 2

  // ๊ฑฐ๊ธฐ์—์„œ ๋ชจ๋“  ๋ฐฐ์—ด์„ ํ•˜๋‚˜์”ฉ ๋นผ๋ฉด ์—†๋Š” ์ˆซ์ž๊ฐ€ ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค.
  for (let i = 0; i <= size - 1; i++) {
    sum -= A[i]
  }

  return sum
}

ํ•ด์„ค

https://i.stack.imgur.com/qYmeo.gif

https://app.codility.com/demo/results/trainingS58ZMJ-NBP/