diff --git a/README.md b/README.md
index db105b3..c1472b0 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
## 1
-### 문제 - 주식가격
+### 문제 - 짝지어 제거하기
### 알고리즘 설계
@@ -9,25 +9,37 @@
### 풀이 코드
```jsx
-function solution(prices) {
- const len = prices.length;
- const result = new Array(len).fill(0);
- const stack = [];
-
- for (let i = 0; i < len; i++) {
- while (stack.length && prices[i] < prices[stack[stack.length - 1]]) {
- let top = stack.pop();
- let diff = i - top;
- result[top] = diff;
- }
- stack.push(i);
+class Stack {
+ constructor() {
+ this.storage = new Object();
+ this.size = 0;
}
- while (stack.length) {
- const top = stack.pop();
- result[top] = len - 1 - top;
+ push(element) {
+ this.size++;
+ this.storage[this.size] = element;
+ }
+ pop() {
+ let removed = this.storage[this.size];
+ delete this.storage[this.size];
+ this.size--;
+ return removed;
+ }
+ top() {
+ return this.storage[this.size];
}
-
- return result;
+}
+function solution(s) {
+ const stack = new Stack();
+ for (let i = 0; i < s.length; i++) {
+ if (stack.top() === s[i]) {
+ stack.pop();
+ continue;
+ } else {
+ stack.push(s[i]);
+ continue;
+ }
+ }
+ return stack.size > 0 ? 0 : 1;
}
```
@@ -41,32 +53,21 @@ function solution(prices) {
## 2
-### 문제 - 스킬트리
+### 문제 - 튜플
### 알고리즘 설계
### 풀이 코드
```jsx
-function solution(skill, skill_trees) {
- let result = 0;
+function solution(s) {
+ let set = new Set();
- for (const tree of skill_trees) {
- const queue = [...skill];
- let isValid = true;
-
- for (const s of tree) {
- if (skill.includes(s)) {
- if (s !== queue[0]) {
- isValid = false;
- break;
- }
- queue.shift();
- }
+ for (let i = 0; i < s.length; i++) {
+ if (isNaN(s[i]) === false) {
+ set.add(s[i]);
}
- if (isValid) result++;
}
- return result;
}
```
diff --git "a/week38/\354\212\244\355\202\254\355\212\270\353\246\254.js" "b/week38/\354\212\244\355\202\254\355\212\270\353\246\254.js"
deleted file mode 100644
index 7c66c54..0000000
--- "a/week38/\354\212\244\355\202\254\355\212\270\353\246\254.js"
+++ /dev/null
@@ -1,20 +0,0 @@
-function solution(skill, skill_trees) {
- let result = 0;
-
- for (const tree of skill_trees) {
- const queue = [...skill];
- let isValid = true;
-
- for (const s of tree) {
- if (skill.includes(s)) {
- if (s !== queue[0]) {
- isValid = false;
- break;
- }
- queue.shift();
- }
- }
- if (isValid) result++;
- }
- return result;
-}
diff --git "a/week38/\354\243\274\354\213\235\352\260\200\352\262\251.js" "b/week38/\354\243\274\354\213\235\352\260\200\352\262\251.js"
deleted file mode 100644
index 07c712b..0000000
--- "a/week38/\354\243\274\354\213\235\352\260\200\352\262\251.js"
+++ /dev/null
@@ -1,20 +0,0 @@
-function solution(prices) {
- const len = prices.length;
- const result = new Array(len).fill(0);
- const stack = [];
-
- for (let i = 0; i < len; i++) {
- while (stack.length && prices[i] < prices[stack[stack.length - 1]]) {
- let top = stack.pop();
- let diff = i - top;
- result[top] = diff;
- }
- stack.push(i);
- }
- while (stack.length) {
- const top = stack.pop();
- result[top] = len - 1 - top;
- }
-
- return result;
-}
diff --git "a/week39/\b\354\247\235\354\247\200\354\226\264\354\240\234\352\261\260\355\225\230\352\270\260.js" "b/week39/\b\354\247\235\354\247\200\354\226\264\354\240\234\352\261\260\355\225\230\352\270\260.js"
new file mode 100644
index 0000000..d8caf09
--- /dev/null
+++ "b/week39/\b\354\247\235\354\247\200\354\226\264\354\240\234\352\261\260\355\225\230\352\270\260.js"
@@ -0,0 +1,32 @@
+class Stack {
+ constructor() {
+ this.storage = new Object();
+ this.size = 0;
+ }
+ push(element) {
+ this.size++;
+ this.storage[this.size] = element;
+ }
+ pop() {
+ let removed = this.storage[this.size];
+ delete this.storage[this.size];
+ this.size--;
+ return removed;
+ }
+ top() {
+ return this.storage[this.size];
+ }
+}
+function solution(s) {
+ const stack = new Stack();
+ for (let i = 0; i < s.length; i++) {
+ if (stack.top() === s[i]) {
+ stack.pop();
+ continue;
+ } else {
+ stack.push(s[i]);
+ continue;
+ }
+ }
+ return stack.size > 0 ? 0 : 1;
+}
diff --git "a/week38/\355\203\235\353\260\260\354\203\201\354\236\220.js" "b/week39/\355\203\235\353\260\260\354\203\201\354\236\220.js"
similarity index 100%
rename from "week38/\355\203\235\353\260\260\354\203\201\354\236\220.js"
rename to "week39/\355\203\235\353\260\260\354\203\201\354\236\220.js"
diff --git "a/week39/\355\212\234\355\224\214.js" "b/week39/\355\212\234\355\224\214.js"
new file mode 100644
index 0000000..8e312ed
--- /dev/null
+++ "b/week39/\355\212\234\355\224\214.js"
@@ -0,0 +1,10 @@
+function solution(s) {
+ let set = new Set();
+
+ for(let i = 0; i < s.length; i++){
+ if(isNaN(s[i])=== false){
+ set.add(s[i]);
+ }
+ }
+
+}
\ No newline at end of file