ํฐ์คํ ๋ฆฌ ๋ทฐ
Algorithm/Baekjoon
[JavaScript/node.js] ๋ฐฑ์ค 1522๋ฒ - ๋ฌธ์์ด ๊ตํ
๊ฐ๋ฐ๊ฐ๊ตด๐ธ 2022. 8. 24. 17:45[๋ฌธ์ ]
https://www.acmicpc.net/problem/1522
[ํ์ด]
- a๋ฅผ ๋ชจ๋ ์ฐ์์ ์ผ๋ก ๋ง๋ค๊ธฐ ์ํด์ ์ฐ์ ๋ฌธ์์ด์ ์ด a ๊ฐ์๋ฅผ ๊ตฌํด์ผ ํฉ๋๋ค.
- a์ ์ด ๋ฌธ์ ๊ฐ์(len)์ ๊ตฌ๊ฐ์ผ๋ก ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ฅผ ํตํด ๊ตฌ๊ฐ์ ํฌํจ๋ a์ ๊ฐ์๋ฅผ ๊ตฌํฉ๋๋ค.
- (์ด a์ ๊ฐ์(len)) - (๊ฐ์ฅ ๋ง์ ๊ฐ์๋ฅผ ํฌํจํ ๊ตฌ๊ฐ์ a๊ฐ ์)๋ฅผ ํตํด ์ต์ ์ด๋ ํ์๋ฅผ ๊ตฌํฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ฌธ์์ด์ด "ababa"๋ผ๊ณ ํ๋ค๋ฉด ํ์ด ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
len = 3 ์ด๋ฏ๋ก 3 ๊ตฌ๊ฐ์ฉ ์ด๋ํ๋ฉฐ ๊ธธ์ด๋ฅผ ๊ตฌํ๋๋ฐ, ์ด๋ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ์ด๊ธฐ๊ฐ์ผ๋ก ์ธ๋ฑ์ค aba ์์ a์ ๊ฐ์๋ฅผ ๊ตฌํ๋ฉด sum = 2์ ๋๋ค.
- ๋ค์ ๊ตฌ๊ฐ๋ถํด ์๋ก ๋ค์ด์จ ๊ฐ์ด b ์ด๊ณ , ๊ตฌ๊ฐ์์ ์ ์ธ๋ ๊ฐ์ด a ์ด๋ฏ๋ก sum + 0 - 1 = 1๋ก bab๋ 1์ด ๋ฉ๋๋ค.
- ์ ๊ณผ์ ์ ๋ฐ๋ณตํ์ฌ ๋ง์ง๋ง ๊ตฌ๊ฐ๊น์ง ๊ตฌํ๋ฉด ์ต๋ sum ๊ฐ์ 2๊ฐ ๋๋ฏ๋ก b๋ฅผ 1๋ฒ๋ง ๊ต์ฒดํ๋ฉด ์ฐ์๋ aaa๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ต์ ๊ต์ฒด ํ์๋ 1์ ๋๋ค.
[์ฝ๋]
const fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().split('\n');
const word = input[0].split("").map(String);
const len = word.filter((i) => i === 'a').length;
// len ์ฉ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๋ฅผ ํด์ a๊ฐ ๊ฐ์ฅ ๋ง์ ๊ตฌ๊ฐ ์ฐพ๊ธฐ
// ์ด๊ธฐ๊ฐ ์ธํ
let sum = 0;
for(let i=0;i<len;i++) {
sum += word[i] === 'a' ? 1 : 0;
}
// ๊ฐ์ฅ ํฐ ๊ฐ ์ฐพ๊ธฐ ์ํด ์ธํ
let max = sum;
for(let i=len;i<word.length + len - 1;i++) {
let w;
// ์๋ก์ด ๊ฐ ๋ํ๊ธฐ
if(i >= word.length) {
w = word[i-word.length];
} else {
w = word[i];
}
sum += w === 'a' ? 1 : 0;
// ์ด์ ๊ฐ ๋นผ๊ธฐ
sum -= word[i-len] === 'a' ? 1 : 0;
if(sum > max) {
max = sum;
}
}
// (์ ์ฒด a์ ์ - ์ต๋ ์ฐ์์ = ์ต์ ์ด๋ ํ์)
console.log(len - max);
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/node.js] ๋ฐฑ์ค 24513๋ฒ - ์ข๋น ๋ฐ์ด๋ฌ์ค (0) | 2022.09.08 |
---|---|
[JavaScript/node.js] ๋ฐฑ์ค 3980๋ฒ - ์ ๋ฐ ๋ช ๋จ (0) | 2022.09.03 |
[JavaScript/node.js] ๋ฐฑ์ค 20437๋ฒ - ๋ฌธ์์ด ๊ฒ์ 2 (1) | 2022.08.23 |
[JavaScript] ๋ฐฑ์ค 13549๋ฒ - ์จ๋ฐ๊ผญ์ง 3 (0) | 2022.08.05 |
[JavaScript] ๋ฐฑ์ค 2457๋ฒ - ๊ณต์ฃผ๋์ ์ ์ (0) | 2022.08.04 |
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- git
- ํ๋กํ ์ฝ
- ์ ์ญ ๋ณ์
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- Baekjoon
- ๋ฐฑ์ค javascript
- ๋ฐฑ์ค
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์๋ฐ
- JavaScript
- ๋ ์์ปฌ ํ๊ฒฝ
- ๋ฐฑ์ค node.js
- ์ฝ๋ฉํ ์คํธ
- ์นด์นด์ค ์ธํด
- ํ๋กํผํฐ
- http
- fp
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ์ด์์ฒด์
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ๋์์ธ ํจํด
- ์๊ณ ๋ฆฌ์ฆ
- ๋คํธ์ํฌ
- ํ๋ก๊ทธ๋๋จธ์ค
- TDD
- ์ด๋ถํ์
- map
- ํฌํฌ์ธํฐ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
๊ธ ๋ณด๊ดํจ