1. ๋ฌธ์
OX๋ฌธ์ ์ํ์์ ์ฐ์์ ์ผ๋ก ๋ต์ ๋งํ๋ ๊ฒฝ์ฐ์๋ ๊ฐ์ฐ์ ์ ์ฃผ๊ธฐ๋ก ํ๋ค. ์์ ๋ฌธ์ ์ ๋ํด์๋ ๋ต์ ํ๋ฆฌ๋ค๊ฐ ๋ต์ด ๋ง๋ ์ฒ์ ๋ฌธ์ ๋ 1์ ์ผ๋ก ๊ณ์ฐํ๋ค. ๋ํ, ์ฐ์์ผ๋ก ๋ฌธ์ ์ ๋ต์ด ๋ง๋ ๊ฒฝ์ฐ์์ ๋ ๋ฒ์งธ ๋ฌธ์ ๋ 2์ , ์ธ ๋ฒ์งธ ๋ฌธ์ ๋ 3์ , ..., K๋ฒ์งธ ๋ฌธ์ ๋ K์ ์ผ๋ก ๊ณ์ฐํ๋ค. ํ๋ฆฐ ๋ฌธ์ ๋ 0์ ์ผ๋ก ๊ณ์ฐํ๋ค. ๋ต์ด ๋ง์ ๋ฌธ์ ์ ๊ฒฝ์ฐ์๋ 1๋ก ํ์ํ๊ณ , ํ๋ฆฐ ๊ฒฝ์ฐ์๋ 0์ผ๋ก ํ์ํ๋ค. ์ฑ์ ๊ฒฐ๊ณผ๊ฐ ์ฃผ์ด์ก์ ๋, ์ด ์ ์๋ฅผ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
์ ๋ ฅ ์์ | 1 0 1 1 1 0 0 1 1 0
์ถ๋ ฅ ์์ | 10
2. ๋ฌธ์ ํ์ด๊ณผ์
1. ๋ฐฐ์ด ํ์(for ๋ฐ๋ณต๋ฌธ)
2. ํ๋์ฉ ๋๋ฉด์ ์ ์๋ฅผ ๋์ ํด์ฃผ๋๋ฐ, ๊ฐ์ฐ์ ์ ๊ฐ์ด ๋ํ๋ฉด์ ๊ณ์ฐํด์ฃผ์ด์ผ ํ๋ค.
[์๋ 1]
function solution(arr){
let answer = 0;
for(let i=0; i<arr.length; i++){
if(A[i] === 1){
answer += 1;
} else answer += 0;
}
return answer;
}
let A = [1, 0, 1, 1, 1, 0, 0, 1, 1, 0];
console.log(solution(A));
์ฒ์์ ์ด๋ ๊ฒ ์์ฑํ๋๋ฐ, ๊ฐ์ฐ์ ๊ณ์ฐ์ด ์๋์ด์ 6์ด ๋์๋ค.
๊ฐ์ฐ์ ๊ณ์ฐ์ ํ๋ ค๋ฉด ๋ญ๊ฐ ์์๊ฐ ๋ ํ์ํ ๊ฒ ๊ฐ์๋ฐ ๋ญ๊น ๊ณ ๋ฏผํ๋ค๊ฐ
[์๋ 2]
function solution(arr){
let answer = 0;
let count;
for(let i=0; i<arr.length; i++){
if(A[i] === 1){
answer += 1;
count = answer++;
} else answer += 0;
}
return count;
}
let A = [1, 0, 1, 1, 1, 0, 0, 1, 1, 0];
console.log(solution(A));
count ๋ณ์๋ฅผ ํ๋ ๋ ๋ง๋ค์ด์ค์ answer+1๊ฐ์ด count์ ๋์ ๋๋๋ก ํ๋ค.
๊ทธ๋ ์ง๋ง ์์ง ๊ณ์ฐ์ด ์ ํํ ๋์ง ์์๋ค.
[์๋ 3]
function solution(arr){
let answer = 0;
let count = 0;
for(let i=0; i<arr.length; i++){
if(arr[i] === 1){
count++; // count = count + 1
answer+=count; // answer = answer + count // answer์ count๋์
} else count=0; // 0์ด ๋ค์ด์ฌ ๊ฒฝ์ฐ count ์ด๊ธฐํ
}
return answer;
}
let A = [1, 0, 1, 1, 1, 0, 0, 1, 1, 0];
console.log(solution(A));
answer์ count์ ๋ชจ๋ ๋์ ์ ํด์ค์ผํ๋๊น 0์ผ๋ก ์ค์ ํด์ค๋ค.
count์ ๊ฐ์ ๋จผ์ ๋ํ๊ณ , answer์ count๋ฅผ ๋ํด์ ๋์ ํด์ค๋ค.
0์ ์ผ ๊ฒฝ์ฐ๋ count๋ฅผ ๋ค์ 0์ผ๋ก ๋ง๋ ๋ค.
for of ๋ฌธ(๋ฐฐ์ด์ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ๋ณต)์ ์จ๋ ๊ฐ๋ฅํ๋ค!
function solution(arr){
let answer = 0;
let count = 0;
for(x of arr){
if(x === 1){
count++; // count = count + 1
answer+=count; // answer = answer + count
} else count=0;
}
return answer;
}
let A = [1, 0, 1, 1, 1, 0, 0, 1, 1, 0];
console.log(solution(A));
'๐กAlgorithm > ๋ฌธ์ ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS์๊ณ ๋ฆฌ์ฆ | ๊ฒฉ์ํ ์ต๋ํฉ(2์ฐจ์ ๋ฐฐ์ด) (0) | 2021.05.01 |
---|---|
JS์๊ณ ๋ฆฌ์ฆ | ๋ฑ์๊ตฌํ๊ธฐ (์ด์คfor๋ฌธ, Array.from) (0) | 2021.04.27 |
JS์๊ณ ๋ฆฌ์ฆ | ๊ฐ์ ๋ฐ์ ๋ณด (0) | 2021.04.25 |
JS์๊ณ ๋ฆฌ์ฆ | ๋ณด์ด๋ ํ์ (0) | 2021.04.25 |
JS ์๊ณ ๋ฆฌ์ฆ | ํฐ ์ ์ถ๋ ฅํ๊ธฐ (0) | 2021.04.25 |