Skip to content

Commit ccfa363

Browse files
committed
다트게임 / 중급
1 parent ee8476f commit ccfa363

File tree

3 files changed

+52
-6
lines changed

3 files changed

+52
-6
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
function solution(s){
2+
const stack = [];
3+
4+
for (let i = 0 ; i < s.length ; i++) {
5+
if(s[i] == '('){
6+
stack.push(')');
7+
}else if(s[i] == '['){
8+
stack.push(']');
9+
}else if(s[i] == '{'){
10+
stack.push('}');
11+
}else{
12+
if (s[i] !== stack.pop()) {
13+
return false;
14+
}
15+
}
16+
}
17+
return stack.length === 0;
18+
}

JooKangSan/[week2]stack/Crane_Claw_Game.js

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,12 @@ function solution(board, moves) {
33
let stack = [];
44

55
for(let move of moves) {
6-
// moves 배열의 값을 인덱스로 사용하기 위해 1을 빼줍니다
76
let col = move - 1;
87

9-
// 해당 열에서 가장 위에 있는 인형을 찾습니다
108
for(let row = 0; row < board.length; row++) {
119
if(board[row][col] !== 0) {
1210
let doll = board[row][col];
13-
14-
// 인형을 집었으니 해당 위치를 0으로 변경
1511
board[row][col] = 0;
16-
17-
// 스택의 최상단 인형과 같다면 두 인형을 터뜨립니다
1812
if(stack[stack.length - 1] === doll) {
1913
stack.pop();
2014
answer += 2;
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
function solution(dartResult) {
2+
let scores = [];
3+
let currentNumber = '';
4+
5+
for(let i = 0; i < dartResult.length; i++) {
6+
let char = dartResult[i];
7+
8+
if(!isNaN(char)) {
9+
currentNumber += char;
10+
}
11+
else if(char === 'S' || char === 'D' || char === 'T') {
12+
let score = Number(currentNumber);
13+
14+
if(char === 'D') score = Math.pow(score, 2);
15+
if(char === 'T') score = Math.pow(score, 3);
16+
17+
scores.push(score);
18+
currentNumber = '';
19+
}
20+
else {
21+
if(char === '*') {
22+
scores[scores.length-1] *= 2;
23+
if(scores.length > 1) {
24+
scores[scores.length-2] *= 2;
25+
}
26+
}
27+
else if(char === '#') {
28+
scores[scores.length-1] *= -1;
29+
}
30+
}
31+
}
32+
33+
return scores.reduce((acc, cur) => acc + cur, 0);
34+
}

0 commit comments

Comments
 (0)