avatar
Published on

Codility - Passing Cars

Author
  • avatar
    Name
    yceffort

Passing Cars

๋ฌธ์ œ

N์˜ ๊ธธ์ด๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด A๋Š” 0๊ณผ 1๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”๋ฐ, 0๊ณผ 1์€ ๊ฐ๊ฐ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

  • 0์€ ์ฐจ๊ฐ€ ๋™์ชฝ์œผ๋กœ ๊ฐ„๋‹ค
  • 1์€ ์ฐจ๊ฐ€ ์„œ์ชฝ์œผ๋กœ ๊ฐ„๋‹ค

์ด ๋•Œ ๋™์ชฝ์œผ๋กœ ๊ฐ„ ์ฐจ์™€ ์„œ์ชฝ์œผ๋กœ ๊ฐ„ ์ฐจ๋ฅผ ์ง์ง€์„ ์ˆ˜ ์žˆ๋Š” ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ผ. ๋‹จ ๋จผ์ € ๋™์ชฝ์œผ๋กœ ๊ฐ„์ฐจ์™€ ๊ทธ ์ดํ›„์— ์„œ์ชฝ์œผ๋กœ ๊ฐ„ ์ฐจ๋งŒ ์ง ์ง€์„ ์ˆ˜ ์žˆ๋‹ค.

A๋ฐฐ์—ด์ด ์•„๋ž˜์™€ ๊ฐ™์ด ์ฃผ์–ด์ ธ ์žˆ๋‹ค๋ฉด
A[0] = 0
A[1] = 1
A[2] = 0
A[3] = 1
A[4] = 1

์ง ์ง€์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” (0, 1), (0, 3), (0, 4), (2, 3), (2, 4).

5๊ฐ€์ง€๋‹ค.

๋‹จ ์ง์˜ ๊ฐœ์ˆ˜๊ฐ€ 1,000,000,000๊ฐœ๋ฅผ ๋„˜์–ด๊ฐ€๋ฉด ๊ทธ๋ƒฅ -1์„ ๋ฆฌํ„ดํ•œ๋‹ค.

ํ’€์ด

// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');

function solution(A) {
  // ๋™์ชฝ์œผ๋กœ ๊ฐ„์ฐจ์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ผ๋‹ค
  let east = 0
  // ๊ฒฐ๊ณผ
  let passing = 0

  for (let i of A) {
    // ๋™์ชฝ์œผ๋กœ ๊ฐ„ ์ฐจ๋ฅผ ์„ผ๋‹ค.
    if (i === 0) {
      east += 1
    } else {
      // ์„œ์ชฝ์œผ๋กœ ๊ฐ„ ์ฐจ๊ฐ€ ๋‚˜ํƒ€๋‚œ๋‹ค๋ฉด, ํ˜„์žฌ ๋™์ชฝ์œผ๋กœ ๊ฐ„ ์ฐจ ๊ฐœ์ˆ˜๋งŒํผ ๋”ํ•œ๋‹ค.
      // ํ˜„์žฌ ๋™์ชฝ์œผ๋กœ ๊ฐ„ ์ฐจ ๊ฐœ์ˆ˜๋งŒํผ ์ง์ด ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
      passing += east
    }
  }

  if (passing > 1000000000) {
    return -1
  }

  return passing
}

https://app.codility.com/demo/results/trainingXFPYT4-R3D/