- Published on
Codility - Passing Cars
- Author
- 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
}