ํฐ์คํ ๋ฆฌ ๋ทฐ
[ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ] ์ฐ์ ๋ถ๋ถ ์์ด(2)
choi95 2021. 7. 5. 14:07๋ฌธ์
N๊ฐ์ ์๋ก ์ด๋ฃจ์ด์ง ์์ด์ด ์ฃผ์ด์ง๋๋ค.์ด ์์ด์์ ์ฐ์๋ถ๋ถ์์ด์ ํฉ์ด ํน์ ์ซ์ M์ดํ๊ฐ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ช ๋ฒ ์๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.๋ง์ฝ N=5, M=5์ด๊ณ ์์ด์ด ๋ค์๊ณผ ๊ฐ๋ค๋ฉด
1 3 1 2 3
ํฉ์ด 5์ดํ๊ฐ ๋๋ ์ฐ์๋ถ๋ถ์์ด์ {1}, {3}, {1}, {2}, {3}, {1, 3}, {3, 1}, {1, 2} , {2, 3}, {1, 3, 1}๋ก ์ด 10๊ฐ์ง ์ ๋๋ค.
๋ฌธ์ ํ์ด
ํฌํฌ์ธํฐ lt์ rt๋ฅผ ์ด์ฉํ์ฌ ์กฐ๊ฑด์ ๋ถํฉํ ์ฐ์๋ถ๋ถ์์ด์ ํฉ์ ๊ตฌํ๊ณ ์ ํ๋ค.
์ฐ์๋ถ๋ถ์์ด์ ํฉ์ด M์ ๊ฐ๊ณผ ๊ฐ๊ฑฐ๋ ํด ๋๊น์ง ํฌ์ธํฐ rt๋ฅผ ์ด๋์์ผ ์ฃผ๋ฉฐ ์ฐ์๋ถ๋ถ์์ด์ ํฉ์ด M์ ๊ฐ๋ณด๋ค ์ปค์ง ๊ฒฝ์ฐ์๋ํด๋น ์ฐ์๋ถ๋ถ์์ด์ ํฉ์ด M์ ๊ฐ๋ณด๋ค ์์์ง ๋๊น์ง(M์ดํ๊ฐ ๋๋ ๊ฒฝ์ฐ์ด๊ธฐ ๋๋ฌธ์ด๋ค) lt๋ฅผ ์ด๋์์ผ ์ฃผ๋ฉฐ ํด๋น ์์๋ค์๊ฐ์ฐํด์ค๋ค.
์ด๋ ์กฐ๊ฑด ์ ์ฐ์๋ถ๋ถ์์ด์ ํฉ์ด M๊ณผ ๊ฐ๊ฑฐ๋ ์์ ๊ฒฝ์ฐ ํด๋น ํฌ์ธํฐ๊ฐ ์ฐธ์กฐํ๊ณ ์๋ ์์๋ ์กฐ๊ฑด์ ๋ถํฉํ๋ ๋ชจ๋ ์ฐ์๋ถ๋ถ์์ด์
๋งจ ๋ ์์์ ๋ฐ๋์ ํฌํจ๋๋ค.
์๋ฅผ ๋ค์ด ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด rt๊ฐ ์์ 1์ ์ฐธ์กฐํ๊ณ ์๋ ํด๋น ์์๋ฅผ ํฌํจํ ์ฐ์๋ถ๋ถ์์ด์ ํฉ์ด M๊ณผ ๊ฐ๊ฑฐ๋ ์์ ๊ฒฝ์ฐ ๊ทธ ๊ฒฝ์ฐ๊ฐ ๋๋
๊ฒฝ์ฐ์ ์์๋ ๋ฐ๋์ 1์ด ํฌํจ๋๋ค.
๋ง์ฝ ๊ทธ ๊ฐ์ด 5์ผ ๊ฒฝ์ฐ(M์ ์ต๋๊ฐ)์๋ 5๋ฅผ ํฌํจํ ์ฐ์๋ถ๋ถ์์ด์ ๋ํ ๊ฒฝ์ฐ์ ์๋ { 5 }, ์ด 1๊ฐ์ง์ด๋ค
์ด๋ 1์ ๋ฐ๋์ ํฌํจํ๋ ์ฐ์๋ถ๋ถ์์ด์ ๋ํ ๊ฒฝ์ฐ์ ์๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํ ์ ์๋ค.
rt_Num(์ธ๋ฑ์ค) - lt_Num(์ธ๋ฑ์ค)+1
์ฝ๋
function solution(arr) {
let answer = 0;
let lt = 0;
let sum = 0;
for(let rt = 0; rt < arr.length; rt++) {
let num = (rt - lt) + 1;
sum += arr[rt];
if(sum <= 5) answer += num;
while(sum > 0) {
sum -= arr[lt++];
if(sum <= 5) answer += num;
}
}
return answer;
}
let arr = [1, 3, 1, 2, 3]
console.log(solution(arr));
function solution(arr) {
let answer = 0;
let lt = 0;
let sum = 0;
for(let rt = 0; rt < arr.length; rt++) {
sum += arr[rt];
while(sum > 5)
/* sum >= 5์ผ ๊ฒฝ์ฐ๋ก ํ๋ค๋ฉด ํฌ์ธํฐ rt๋ก ์ฐธ์กฐํด์ ๊ตฌํ ์ฐ์๋ถ๋ถ์์ด์ ๋ํ ๊ฒฝ์ฐ์ ์์
๋์ผํ ๊ฒฝ์ฐ์ ์๋ฅผ ํฌ์ธํฐ lt๊ฐ ์ฐธ์กฐํ๊ฒ ๋์ด ์ค์ฒฉ๋๋ ๋ฌธ์ ๊ฐ ์๊ธด๋ค. */
{
sum -= arr[lt++];
}
answer += rt - lt + 1;
}
return answer;
}
let arr = [1, 3, 1, 2, 3]
console.log(solution(arr));
'์๊ณ ๋ฆฌ์ฆ > ํ๊ทธ ๋ณ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํด์ฌ]ํ๊ธ ํ์ฅ (0) | 2021.07.07 |
---|---|
[์ฌ๋ผ์ด๋ฉ ์๋์ฐ]์ต๋ ๋งค์ถ (0) | 2021.07.06 |
[ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ]์ฐ์ ๋ถ๋ถ ์์ด(1) (0) | 2021.07.03 |
[ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ]๊ณตํต์์ ๊ตฌํ๊ธฐ (0) | 2021.07.02 |
[ํฌํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ]๋ ๋ฐฐ์ด ํฉ์น๊ธฐ (0) | 2021.07.02 |