-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path82,83.js
More file actions
131 lines (114 loc) · 2.53 KB
/
82,83.js
File metadata and controls
131 lines (114 loc) · 2.53 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
/*
문제82 : 수학 괄호 파싱
수학공식이 제대로 입력이 되었는지 판단하는 코드를 작성하려 합니다. 괄호는 소괄호밖에 없습니다.
**입출력 예시**
```jsx
데이터 입력(1), 프로그램 종료(2) : 1
데이터를 입력하세요: 3 + 5
True
데이터 입력(1), 프로그램 종료(2) : 1
데이터를 입력하세요: 5 + 7) * (3 * 5)
False
```
```jsx
function math(e){
//코드를 작성해주세요
}
while (1){
let order = prompt('데이터 입력(1), 프로그램 종료(2)');
if (order === 1){
const ex = prompt('데이터를 입력하세요');
console.log(math(ex));
} else {
break;
}
}
```
문제83 : 수학 괄호 파싱 2
```
데이터 입력(1), 프로그램 종료(2) : 1
데이터를 입력하세요: 5 + 7 * {(3 * 5)}
True
데이터 입력(1), 프로그램 종료(2) : 1
데이터를 입력하세요: 5 + 7){ * (3 * 5)
False
데이터 입력(1), 프로그램 종료(2) : 2
```
```jsx
function math(e){
//코드를 작성해주세요
}
while (1){
const order = prompt('데이터 입력(1), 프로그램 종료(2)');
if (order == '1'){
const ex = input('데이터를 입력하세요');
console.log(math(ex));
} else {
break;
}
}
```
*/
// 내 답안
const input = "5 + 7 * {(3 * 5)}";
const ex = input.split("");
function math(ex) {
let box = [];
let box2 = [];
for (let i of ex) {
if (i === "(") {
box.push(i);
} else if (i === "{") {
box2.push(i);
} else if (i === ")") {
box.push(i);
} else if (i === "}") {
box2.push(i);
}
}
console.log(box);
console.log(box2);
let abcd = 0;
let abc = 0;
while (abcd < 100) {
for (let i = 0; i < box.length; i++) {
if (box[i] + box[i + 1] === "()") {
box.splice(i, 2);
}
}
abcd = abcd + 1;
}
while (abc < 100) {
for (let i = 0; i < box2.length; i++) {
if (box2[i] + box2[i + 1] === "{}") {
box2.splice(i, 2);
}
}
abc = abc + 1;
}
return box.length === 0 && box2.length === 0 ? true : false;
}
console.log(math(ex));
// 답안
function math(e) {
const m = {
")": "(",
"}": "{",
};
let stack = [];
for (let i = 0; i < e.length; i++) {
if (e[i].includes("(") || e[i].includes("{")) {
stack.push(e[i]);
} else if (m[e[i]]) {
if (stack.length === 0) {
return false;
} else {
let t = m[e[i]];
if (t != stack.pop()) {
return false;
}
}
}
}
return stack.length === 0;
}