์๊ณ ๋ฆฌ์ฆ
Algorithm | Brackets ์ ํจ์ฑ ๋ก์ง ๊ตฌํ
3jun
2022. 1. 17. 15:18
๐ ๋ฌธ์
๋์ ๋ต์
function isValid(s) {
const openBrackets = ['(', '[', '{'];
const closeBrackets = [')', ']', '}'];
for(let i=0; i<3; i++){
let open = s.indexOf(openBrackets[i]);
let close = s.indexOf(closeBrackets[i]);
if( (close-open)%2 === 1) {
return true;
} else {
return false;
}
}
}
์ฌ๊ณ ์ ํ๋ฆ
- true ๊ฐ์ด ๋์ค๊ธฐ ์ํด์ ๊ฐ open bracket๊ณผ close bracket์ ์ฐ์ด์ด ๋์ค๋์ง ํน์ ์ด๋ฐ ๊ดํธ๋ค ๋ฐ๊นฅ์ ์์นํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ค๊ฐ์ ๋ธ๋ผ์ผ ์ธํธ๋ค์ด ์กด์ฌํด์ผํ๋ค.
i.e).{[()]}
/[]({})
...- ๋ฐ๋ผ์ ์ธํธ๊ฐ ๋๋ ๋ธ๋ผ์ผ์ ์ธ๋ฑ์ค๋ 2๋ก ๋๋ ๋๋จธ์ง ๊ฐ์ด 1์ด ๋์ด์ผ ํ๋ค.
- open bracket ๊ณผ close bracket์ ๋๋ ์ ๋ฐฐ์ด์ ๋ฃ์ ๋ค์, ์ธํธ๊ฐ ๋๋ ๋ธ๋ผ์ผ๋ค์ ์ธ๋ฑ์ค๋ฅผ ๊ตฌํ๊ณ close bracket์ ์ธ๋ฑ์ค ๊ฐ์์ open bracket์ ์ธ๋ฑ์ค๋ฅผ ๋นผ๊ณ ๊ทธ ๊ฐ์ 2๋ก ๋๋ ๋๋จธ์ง๊ฐ 1์ด๋ฉด true, ์๋๋ฉด false๊ฐ ์ถ๋ ฅ ๋๋๋ก ํ๋ค.
โ ์์ธ
s = "{}" // false
// bracket์ i ์ ๋ฐ๋ผ (, [, { ์์๋ก ๋น๊ตํ์ฌ ์ฒซ๋ฒ์งธ ์๊ดํธ ๋น๊ต์์ false ๊ฐ์ด ์๊ธฐ๋ฉด false ๊ฐ ์ถ๋ ฅ๋๋ค.
s = "()))" // true
s = "()}[]" // true
// open ๋ธ๋ผ์ผ๊ณผ close ๋ธ๋ผ์ผ์ ์ธํธ๊ฐ ๋ง์ง ์์ผ๋ฉด ์กฐ๊ฑด๋ฌธ์ด ๋์๊ฐ์ง ์๋๋ค.