-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path53.js
64 lines (60 loc) · 1.79 KB
/
53.js
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
/*
문제53 : 괄호 문자열
괄호 문자열이란 괄호 기호인 '{', '}', '[', ']', '(', ')' 와 같은 것을 말한다. 그중 괄호의 모양이 바르게 구성된 문자열을 바른 문자열, 그렇지 않은 문자열을 바르지 않은 문자열이라 부르도록 하자.
(())와 같은 문자열은 바른 문자열이지만 ()()) 와 같은 문자열은 바르지 않은 문자열이다.
(해당 문제에서는 소괄호만 판별하지만, 중괄호와 대괄호까지 판별해 보세요.)
입력으로 주어진 괄호 문자열이 바른 문자열인지 바르지 않은 문자열인지 "YES"와 "NO"로 구분된 문자열을 출력해보자.
*/
// 내 답안
const input = "()())";
const Array = input.split("");
console.log(Array);
const result = [];
for (let i = 0; i < Array.length; i++) {
result.push(Array[i]);
for (let j = 0; j < result.length; j++)
if (
result[j] + result[j + 1] === "()" ||
result[j] + result[j + 1] === "[]" ||
result[j] + result[j + 1] === "{}"
) {
result.splice(j);
}
}
console.log(result.length > 0 ? "No" : "Yes");
// 답안
function math(e) {
let count = 0;
//괄호 개수가 같지 않으면 false
for (let i = 0; i < e.length; i++) {
if (e[i] === "(") {
count++;
}
if (e[i] === ")") {
count--;
}
}
if (count !== 0) {
return false;
}
let 괄호 = [];
for (let i in e) {
if (e[i] === "(") {
괄호.push("(");
}
if (e[i] === ")") {
if (괄호.length === 0) {
// 괄호가 비어있다면 잘못된 문자열이므로 false를 리턴한다.
return false;
}
괄호.pop();
}
}
return true;
}
const n = prompt("입력해주세요.").split("");
if (math(n) === true) {
console.log("YES");
} else {
console.log("NO");
}