๊ฐ์ธ๊ณต๋ถ/Algorithm
[๋ฐฑ์ค][Node.js] 1120๋ฒ : ๋ฌธ์์ด
๐๋ฐ๋ด๋ด๐
2021. 6. 4. 21:39
Algorithm
- ๋ฌธ์์ด -
๋ฌธ์
๊ธธ์ด๊ฐ N์ผ๋ก ๊ฐ์ ๋ฌธ์์ด X์ Y๊ฐ ์์ ๋, ๋ ๋ฌธ์์ด X์ Y์ ์ฐจ์ด๋ X[i] ≠ Y[i]์ธ i์ ๊ฐ์์ด๋ค.
์๋ฅผ ๋ค์ด, X = "jimin", Y = "minji"์ด๋ฉด, ๋์ ์ฐจ์ด๋ 4์ด๋ค.
๋ ๋ฌธ์์ด A์ B๊ฐ ์ฃผ์ด์ง๋ค.
์ด๋, A์ ๊ธธ์ด๋ B์ ๊ธธ์ด๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
์ด์ A์ ๊ธธ์ด๊ฐ B์ ๊ธธ์ด์ ๊ฐ์์ง ๋๊น์ง ๋ค์๊ณผ ๊ฐ์ ์ฐ์ฐ์ ํ ์ ์๋ค.
1. A์ ์์ ์๋ฌด ์ํ๋ฒณ์ด๋ ์ถ๊ฐํ๋ค.
2. A์ ๋ค์ ์๋ฌด ์ํ๋ฒณ์ด๋ ์ถ๊ฐํ๋ค.
์ด๋, A์ B์ ๊ธธ์ด๊ฐ ๊ฐ์ผ๋ฉด์, A์ B์ ์ฐจ์ด๋ฅผ ์ต์๋ก ํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ์ถ๋ ฅ ์์
A์ B์ ๊ธธ์ด๊ฐ ๊ฐ์ผ๋ฉด์, A์ B์ ์ฐจ์ด๋ฅผ ์ต์๊ฐ ๋๋๋ก ํ์ ๋, ๊ทธ ์ฐจ์ด๋ฅผ ์ถ๋ ฅํ์์ค.
๋ฌธ์ ํ๊ธฐ
let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().split(" ");
let word1 = input[0].slice().split("");
let word2 = input[1].slice().split("");
let gap = [];
for (let i = 0; i <= input[1].length - input[0].length; i++) {
let difference = word1.filter((el, idx) => el !== word2[idx + i]).length;
gap.push(difference);
}
console.log(Math.min(...gap));
๋ฐ์ํ