[λ°±μ€] JS/ 4949 κ· νμ‘ν μΈμ
β.μ€μ λ°±μ€ νμ΄μμλ fs.readFileSync('./test') -> fs.readFileSync('./dev/stdin') μ΄λ κ² κ³ μ³μ μκ°ν΄μ£ΌμΈμ
μ²μ νμ΄λ μμ ν μλͺ» μκ°νλ€.
λκ°μ κ°μλ§ λ§μΌλ©΄ λλ€κ³ μκ°ν΄μ μ κ·ννμμΌλ‘ μ μ±μ€λ½κ² μ΄μν μ½λλ₯Ό μ¨λ΄λ €κ°λ€..^^
μ²μ νμ΄ ( λ°©ν₯ μμ μλͺ» )
const fs = require('fs');
let input = (fs.readFileSync('./test') + '').toString().trim().split('.');
input.pop();
input.pop();
console.log(input);
const regL = /\[/g;
const regR = /\[/g;
const regl = /\(/g;
const regr = /\)/g;
const ans = input.map((i) => {
const regLCnt = i.match(regL) ? i.match(regL).length : 0;
const regRCnt = i.match(regR) ? i.match(regR).length : 0;
const reglCnt = i.match(regl) ? i.match(regl).length : 0;
const regrCnt = i.match(regr) ? i.match(regr).length : 0;
console.log(i, 'i', regLCnt, regRCnt, reglCnt, regrCnt);
if (regLCnt === regRCnt && reglCnt === regrCnt) return 'yes';
else return 'no';
});
console.log(ans);
κ·Έ λ€μμμΌ λ μκ°μ
μ€νμ λ§λ€μ΄μ λ£λ€ λΊλ€ ν΄μ€μΌ νλꡬλ λΌλκ±Έ λλ
λ΄νμ΄ 2 (μ€λ΅)
const fs = require('fs');
let input = (fs.readFileSync('./test') + '').toString().trim().split('.');
input.pop();
input.pop();
const ans = input.map((sentence) => {
const bracketStack = [];
sentence.split('').forEach((word) => {
if (word === '(' || word === '[') {
bracketStack.push(word);
} else if (word === ')') {
if (bracketStack[bracketStack.length - 1] !== '(') return 'no';
else bracketStack.pop();
} else if (word === ']') {
if (bracketStack[bracketStack.length - 1] !== '[') return 'no';
else bracketStack.pop();
}
});
if (bracketStack.length !== 0) return 'no';
return 'yes';
});
ans.forEach((a) => console.log(a));
μ΄λ»κ²λ λ΅μ λ§λ€κΈ° μν λ°μ ..?
λ¬Έμ μμλ λ§μλ€κ³ μκ°νλλ°
νμ ν 쑰건문μμ κ±Έλ Έλ€κ³ νλ¨νκ³ νλ¬μ€ μκ°μ΄κ³Όλ μμνκ³ μμλ€.
λ΄ νμ΄3(μ λ΅)
const fs = require('fs');
let input = (fs.readFileSync('./test') + '').toString().trim().split('\n');
const open = ['(', '['];
const close = [')', ']'];
let bracketStack;
const ans = [];
input.pop();
input.forEach((sentence) => {
let isBool = false;
bracketStack = [];
for (let i = 0; i < sentence.length; i++) {
if (open.includes(sentence[i])) bracketStack.push(sentence[i]);
else if (close.includes(sentence[i])) {
if (bracketStack.pop() !== open[close.indexOf(sentence[i])]) {
ans.push('no');
isBool = true;
break;
}
}
}
if (!isBool) {
if (bracketStack.length === 0) ans.push('yes');
else ans.push('no');
}
});
console.log(ans.join('\n'));
λμ¬λλ§λ€ 쑰건문μ ν΅ν΄ νμΈνλ κ²μ΄ μλλΌ.
1. κ° λ¬Έμμ΄μ΄ openμΈμ§ closeμΈμ§ νμΈ
2. closeλΌλ©΄ λ°©κΈλμ¨ λ¬Έμμ΄μ΄ ')' μΈμ§ ']'μΈμ§ νμΈ (openκ³Ό closeμ μΈλ±μ€κ° κ°μμ μ΄μ©)
3. 2λ²μ΄ ν릴 κ²½μ° isBoolκ°μΌλ‘ λ겨 bracketμ΄ λΉμ΄μλμ§μ μ¬λΆλ‘ λ΅ νμΈ
4. λ§μ§λ§μΌλ‘ forλ¬ΈμΌλ‘ console.log νμ§μκ³ join ( μ΄κ±° μκΎΈ κΉλ¨Ήμ)
---
π₯³ μ λ§ ..... λ―Έλ¬νκ² μκΎΈ λ΅μ΄ νλ¦°λ€. κ·Έλ¦¬κ³ μ€λλ μλ‘μ΄ ν¨μΈμ μΈ ννλ€μ λ°°μ λ°.