Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions tkddbs587/Array/Divisible_number_array.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
function solution(arr, divisor) {
let newArr = arr.filter((el) => el % divisor === 0); // ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ๋‹ด๊ธด ์ƒˆ ๋ฐฐ์—ด ๋ฐ˜ํ™˜

// ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ์—˜๋ฆฌ๋จผํŠธ ์—†์œผ๋ฉด ๊ทธ๋ƒฅ [-1] ๋ฐ˜ํ™˜
if (newArr.length === 0) {
return [-1];
}

return newArr.sort((a, b) => a - b); // ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
}
3 changes: 3 additions & 0 deletions tkddbs587/Array/Length_of_array_elements.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
function solution(strlist) {
return strlist.map((str) => str.length);
}
8 changes: 8 additions & 0 deletions tkddbs587/Hash/Make_b_from_a.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
function solution(before, after) {
// 1. ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜
// 2. ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
// 3. ์ •๋ ฌํ•œ ๋ฐฐ์—ด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ ํ›„ ๋น„๊ต
return before.split("").sort().join("") === after.split("").sort().join("")
? 1
: 0;
}
39 changes: 39 additions & 0 deletions tkddbs587/Hash/Morse_code.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
function solution(letter) {
// ๋ชจ์Šค ๋ถ€ํ˜ธ ๊ฐ์ฒด
morse = {
".-": "a",
"-...": "b",
"-.-.": "c",
"-..": "d",
".": "e",
"..-.": "f",
"--.": "g",
"....": "h",
"..": "i",
".---": "j",
"-.-": "k",
".-..": "l",
"--": "m",
"-.": "n",
"---": "o",
".--.": "p",
"--.-": "q",
".-.": "r",
"...": "s",
"-": "t",
"..-": "u",
"...-": "v",
".--": "w",
"-..-": "x",
"-.--": "y",
"--..": "z",
};

// letter์˜ ๋ชจ์Šค ๋ถ€ํ˜ธ๊ฐ€ ๊ณต๋ฐฑ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ ์ ธ์žˆ์œผ๋ฏ€๋กœ split๋ฅผ ํ†ตํ•ด ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜
// ๋ณ€ํ™˜๋œ ๋ฐฐ์—ด์„ map์„ ํ†ตํ•ด ์ˆœํšŒํ•˜๋ฉฐ morse ๊ฐ์ฒด์˜ ํ‚ค์™€ ์ผ์น˜ํ•˜๋Š” ์˜์–ด ๋ฌธ์ž์—ด value๋กœ ์ด๋ฃจ์–ด์ง„ ์ƒˆ ๋ฐฐ์—ด ๋ฐ˜ํ™˜
// ์˜์–ด ๋ฐฐ์—ด์„ join์„ ํ†ตํ•ด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜
return letter
.split(" ")
.map((el) => morse[el])
.join("");
}
10 changes: 10 additions & 0 deletions tkddbs587/Hash/Ranking.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
function solution(score) {
// score์˜ ํ‰๊ท  ์ ์ˆ˜ ๊ตฌํ•˜๊ธฐ
let average = score.map((el) => (el[0] + el[1]) / 2);

// ํ‰๊ท ์„ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋ฐฐ์—ด ์„ ์–ธ slice() ํ†ตํ•ด average ๋ฐฐ์—ด ์–•์€ ๋ณต์‚ฌ(์›๋ณธ ๋ฐฐ์—ด์€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Œ)
let sortedAverage = average.slice().sort((a, b) => b - a);

// average์˜ ์š”์†Œ์™€ ๋™์ผํ•œ sortedAverage ๋ฐฐ์—ด์˜ index ๊ฐ’์— 1์„ ๋”ํ•˜๊ธฐ
return average.map((el) => sortedAverage.indexOf(el) + 1);
}
6 changes: 6 additions & 0 deletions tkddbs587/Hash/Set_treatment_order.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
function solution(emergency) {
let sorted = [...emergency].sort((a, b) => b - a); // ๋ฐฐ์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ

return emergency.map((v) => sorted.indexOf(v) + 1);
// ๊ธฐ์กด ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ๋œ ๋ฐฐ์—ด์— ๋งค์นญ๋˜๋Š” ์š”์†Œ๋กœ ์ ‘๊ทผํ•˜์—ฌ index + 1 ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์ˆœ์œ„ ๋งค๊ธฐ๊ณ  map() ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ˆœ์œ„๊ฐ€ ๋‹ด๊ธด ์ƒˆ ๋ฐฐ์—ด ๋ฐ˜ํ™˜
}
15 changes: 15 additions & 0 deletions tkddbs587/Queue/Card_bundle.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
function solution(cards1, cards2, goal) {
let index1 = 0; // ์นด๋“œ1์˜ ์ธ๋ฑ์Šค
let index2 = 0; // ์นด๋“œ2์˜ ์ธ๋ฑ์Šค

for (let i = 0; i < goal.length; i++) {
if (cards1[index1] === goal[i]) {
// ์นด๋“œ1์˜ ์ธ๋ฑ์Šค 0๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ๊ณจ์˜ ์ธ๋ฑ์Šค i์™€ ๊ฐ™์œผ๋ฉด
index1++; // ์นด๋“œ 1์˜ ์ธ๋ฑ์Šค 1 ์ฆ๊ฐ€
} else if (cards2[index2] === goal[i]) {
// ์นด๋“œ2์˜ ์ธ๋ฑ์Šค 0๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ๊ณจ์˜ ์ธ๋ฑ์Šค i์™€ ๊ฐ™์œผ๋ฉด
index2++; // ์นด๋“œ 2์˜ ์ธ๋ฑ์Šค 1 ์ฆ๊ฐ€
} else return "No"; // ์ˆœ์„œ๋Œ€๋กœ ๋น„๊ตํ•˜๋‹ค๊ฐ€ ๋” ์ด์ƒ ์ผ์น˜ํ•˜๋Š” ์ธ๋ฑ์Šค๊ฐ€ ์—†์œผ๋ฉด ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ๋ฌธ์žฅ์ด๋ฏ€๋กœ No ๋ฐ˜ํ™˜
}
return "Yes"; // goal์˜ ์ธ๋ฑ์Šค๋งŒํผ ์ˆœํšŒ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๋งˆ์น˜๋ฉด ๋ฌธ์žฅ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ Yes ๋ฐ˜ํ™˜
}
23 changes: 23 additions & 0 deletions tkddbs587/Queue/Find_point_position.js
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

function solution(dot) {
  const [x, y] = dot;
  
  switch (true) {
    case (x > 0 && y > 0):
      return 1;
    case (x < 0 && y > 0):
      return 2;
    case (x < 0 && y < 0):
      return 3;
    case (x > 0 && y < 0):
      return 4;
    default:
      throw new Error('Invalid coordinates');
  }
}

์ด๋Ÿฐ์‹์œผ๋กœ ์Šค์œ„์น˜ ๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ํ‘œํ—Œํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์–ด์š”!

Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
function solution(dot) {
const [x, y] = dot; // x, y ๊ฐ’

if (Math.sign(x) === 1) {
// x๊ฐ’์ด ์–‘์ˆ˜์ผ๋•Œ
if (Math.sign(y) === 1) {
// y๊ฐ’๋„ ์–‘์ˆ˜๋ฉด
return 1; // 1์‚ฌ๋ถ„๋ฉด
} else {
return 4; // x๊ฐ’์€ ์–‘์ˆ˜๊ณ  y๊ฐ’์€ ์Œ์ˆ˜ -> 4์‚ฌ๋ถ„๋ฉด
}
}

if (Math.sign(x) === -1) {
// x๊ฐ’์ด ์Œ์ˆ˜์ผ๋•Œ
if (Math.sign(y) === -1) {
// y๊ฐ’๋„ ์Œ์ˆ˜๋ฉด
return 3; // 3์‚ฌ๋ถ„๋ฉด
} else {
return 2; // y๊ฐ’์€ ์–‘์ˆ˜๊ณ  x๊ฐ’์€ ์Œ์ˆ˜ -> 2์‚ฌ๋ถ„๋ฉด
}
}
}
13 changes: 13 additions & 0 deletions tkddbs587/Queue/Login_success.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
function solution(id_pw, db) {
const [id, pw] = id_pw; // ์•„์ด๋””, ํŒจ์Šค์›Œ๋“œ ๋ถ„๋ฆฌ
const map = new Map(db); // db๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Map ๊ฐ์ฒด ์ƒ์„ฑ
console.log(map);

if (map.has(id)) {
// map ๊ฐ์ฒด์— id ๊ฐ€ ์žˆ์„๋•Œ
if (map.get(id) === pw) {
// ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ๊ฐ€ ์ผ์น˜ํ•˜๋ฉด
return "login"; // 'login' ๋ฐ˜ํ™˜
} else return "wrong pw"; // ์•„์ด๋””๋Š” ๊ฐ™์€๋ฐ ํŒจ์Šค์›Œ๋“œ๋งŒ ํ‹€๋ฆฌ๋ฉด 'wrong pw' ๋ฐ˜ํ™˜
} else return "fail"; // ๋‘˜ ๋‹ค ํ‹€๋ฆฌ๋ฉด 'fail' ๋ฐ˜ํ™˜
}
18 changes: 18 additions & 0 deletions tkddbs587/Queue/Make_burger.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
function solution(ingredient) {
let stack = []; // ์Šคํƒ
let count = 0; // ํ–„๋ฒ„๊ฑฐ ํฌ์žฅ ๊ฐฏ์ˆ˜
for (let i = 0; i < ingredient.length; i++) {
stack.push(ingredient[i]); // ingredient ์ธ๋ฑ์Šค ์ˆœ์„œ๋Œ€๋กœ ์Šคํƒ์— ์ถ”๊ฐ€
if (stack.length >= 4) {
// ์Šคํƒ์— ์žฌ๋ฃŒ๊ฐ€ 4๊ฐœ ์ด์ƒ ์Œ“์˜€์„๋•Œ
const hamburger = stack.slice(-4).join(""); // ์Šคํƒ์˜ ๋์—์„œ๋ถ€ํ„ฐ 4๊ฐœ์˜ ์š”์†Œ ๋ฌธ์ž์—ด๋กœ ์ถ”์ถœ

if (hamburger === "1231") {
// ์ถ”์ถœํ•œ ๋ฌธ์ž์—ด์ด 1231 ์ˆœ์„œ์™€ ์ผ์น˜ํ•˜๋ฉด
count++; // ํฌ์žฅ ๊ฐฏ์ˆ˜ 1 ์ฆ๊ฐ€
stack.splice(-4); // ์Šคํƒ์—์„œ ํฌ์žฅ๋œ ํ–„๋ฒ„๊ฑฐ ์ œ๊ฑฐ
}
}
}
return count; // ์ด ํฌ์žฅ ๊ฐฏ์ˆ˜ ๋ฐ˜ํ™˜
}
12 changes: 12 additions & 0 deletions tkddbs587/Queue/Number_of_ordered_pairs.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
function solution(n) {
let count = 0;

for (let i = 1; i <= n; i++) {
if (n % i === 0) {
// n์˜ ์•ฝ์ˆ˜ ๊ตฌํ•˜๊ธฐ
count++; // ์•ฝ์ˆ˜ ๊ตฌํ• ๋•Œ๋งˆ๋‹ค ์นด์šดํŠธ์—…
}
}

return count; // ์ˆœ์„œ์Œ ๊ฐฏ์ˆ˜ ๋ฐ˜ํ™˜
}
13 changes: 13 additions & 0 deletions tkddbs587/Stack/Control_z.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
function solution(s) {
let answer = 0;
const arr = s.split(" "); // ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฌธ์ž์—ด์„ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜
for (let i = 0; i < arr.length; i++) {
if (arr[i] !== "Z") {
// ๋ฐฐ์—ด ์š”์†Œ๊ฐ€ 'Z' ๊ฐ€ ์•„๋‹ˆ๋ฉด
answer += Number(arr[i]); // Number ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ ํ›„ ๋ณ€์ˆ˜์— ๋”ํ•˜๊ธฐ
} else {
answer -= Number(arr[i - 1]); // 'Z' ๋ฉด ํ˜„์žฌ ์ธ๋ฑ์Šค ํ•˜๋‚˜ ์ „ ์ธ๋ฑ์Šค์˜ ์ˆซ์ž ๋นผ๊ธฐ
}
}
return answer; // ์ตœ์ข… ์ˆซ์ž ๋ฐ˜ํ™˜
}
32 changes: 32 additions & 0 deletions tkddbs587/Stack/Crane_claw_machine_game.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
function solution(board, moves) {
// 2์ฐจ์› ๋ฐฐ์—ด board๋ฅผ ๊ฐ ์—ด๋งˆ๋‹ค ์Šคํƒ ์ƒ์„ฑ 5x5์ผ ๊ฒฝ์šฐ ์ด 5๊ฐœ์˜ ์Šคํƒ ์ƒ์„ฑ
let stack = [...Array(board[0].length)].map(() => []);

for (let i = board.length - 1; i >= 0; i--) {
for (let j = 0; j < board[0].length; j++) {
if (board[i][j] !== 0) {
// 0์ด ์•„๋‹๋•Œ๋งŒ ๊ฐ ์Šคํƒ์— ์ถ”๊ฐ€
stack[j].push(board[i][j]); // ์Šคํƒ์˜ ๊ฐ ์—ด์— ๋งž์ถฐ board์˜ ์š”์†Œ๋“ค ์ถ”๊ฐ€
}
}
}

let removeCount = 0;
let bucket = [];

for (let m of moves) {
if (stack[m - 1].length > 0) {
// ์Šคํƒ์˜ ์—ด์— ์ธํ˜•์ด ์กด์žฌํ•˜๋ฉด
const doll = stack[m - 1].pop(); // ๋งจ ์œ„์˜ ์ธํ˜• ์ง‘์–ด์„œ
// ๋ฐ”๊ตฌ๋‹ˆ์— ์ธํ˜•์ด ์žˆ๊ณ  ๋งจ ์œ„์˜ ์ธํ˜•์ด ์ง€๊ธˆ ๋„ฃ์œผ๋ ค๋Š” ์ธํ˜•๊ณผ ๊ฐ™์œผ๋ฉด
if (bucket.length > 0 && bucket[bucket.length - 1] === doll) {
bucket.pop(); // ๋ฐ”๊ตฌ๋‹ˆ ๋งจ ์œ„์˜ ์ธํ˜• ์ œ๊ฑฐ
removeCount += 2; // ์ œ๊ฑฐํ•œ ๊ฐฏ์ˆ˜ 2๊ฐœ ์ถ”๊ฐ€
} else {
bucket.push(doll); // ๋ฐ”๊ตฌ๋‹ˆ์— ์ธํ˜•์ด ์—†๊ฑฐ๋‚˜ ๋งจ ์œ„ ์ธํ˜•๊ณผ ๊ฐ™์ง€ ์•Š์€ ์ธํ˜•์ด๋ฉด ์ถ”๊ฐ€
}
}
}

return removeCount;
}
35 changes: 35 additions & 0 deletions tkddbs587/Stack/Dart_game.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
function solution(d) {
let arr = d.split("");
let stack = [];
let score = 0;

for (let i = 0; i < arr.length; i++) {
if (!isNaN(arr[i])) {
if (arr[i] === "1" && arr[i + 1] === "0") {
// ์ ์ˆ˜๊ฐ€ 10์ธ ๊ฒฝ์šฐ
score = 10; // ์ด ์Šค์ฝ”์–ด์— 10์  ์ถ”๊ฐ€
i++; // 0 ๊ฑด๋„ˆ๋›ฐ๊ธฐ
} else score = arr[i];
} else if (arr[i] === "S") {
stack.push(Math.pow(score, 1)); // Single -> 1์ œ๊ณฑ
} else if (arr[i] === "D") {
stack.push(Math.pow(score, 2)); // Double -> 2์ œ๊ณฑ
} else if (arr[i] === "T") {
stack.push(Math.pow(score, 3)); // Triple -> 3์ œ๊ณฑ
} else if (arr[i] === "#") {
// ์•„์ฐจ์ƒ์ผ ๊ฒฝ์šฐ
stack[stack.length - 1] *= -1; // ํ•ด๋‹น ์ ์ˆ˜ ๋นผ๊ธฐ
} else if (arr[i] === "*") {
// ์Šคํƒ€์ƒ์ผ ๊ฒฝ์šฐ
stack[stack.length - 1] *= 2; // ํ•ด๋‹น ์ ์ˆ˜ 2๋ฐฐ
stack[stack.length - 2] *= 2; // ๋ฐ”๋กœ ์ „ ์ ์ˆ˜๋„ 2๋ฐฐ
}
}

let result = 0;
for (let i = 0; i < stack.length; i++) {
result += stack[i]; // ์ด ์ ์ˆ˜ ๊ตฌํ•˜๊ธฐ
}

return result; // ์ด ์ ์ˆ˜ ๋ฐ˜ํ™˜
}
26 changes: 26 additions & 0 deletions tkddbs587/Stack/I_hate_english.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
function solution(numbers) {
let numArr = [
"zero",
"one",
"two",
"three",
"four",
"five",
"six",
"seven",
"eight",
"nine",
]; // 0 ~ 9 ๋ฐฐ์—ด ์ƒ์„ฑ
let strNum = ""; // ์ˆซ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„ํ•œ numbers๋ฅผ ์ธ๋ฑ์Šค ์ˆœ์„œ๋Œ€๋กœ ๋‹ด์„ ๋ณ€์ˆ˜
let result = ""; // ์ˆซ์ž ๋‹จ์–ด์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž๋ฅผ ๋‹ด์„ ๋ณ€์ˆ˜
for (let i = 0; i < numbers.length; i++) {
strNum += numbers[i]; // ๋ณ€์ˆ˜์— numbers ์ธ๋ฑ์Šค ์ˆœ์„œ๋Œ€๋กœ ๋‹ด๊ธฐ

if (numArr.includes(strNum)) {
// ์ฐจ๋ก€๋Œ€๋กœ ๋‹ด๋‹ค๊ฐ€ ๋ฐฐ์—ด์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž๊ฐ€ ์žˆ์œผ๋ฉด
result += numArr.indexOf(strNum); // ํ•ด๋‹น ์ˆซ์ž ์ธ๋ฑ์Šค๋ฅผ ๋ณ€์ˆ˜์— ์ถ”๊ฐ€
strNum = ""; // numbers์— ์žˆ๋Š” ๋‹ค์Œ ์ˆซ์ž ๋‹จ์–ด๋ฅผ ๋”ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ์ดˆ๊ธฐํ™”
}
}
return Number(result); // ๋ฌธ์ž์—ด๋กœ ๋ผ์žˆ๋Š” ์ˆซ์ž ๋ณ€์ˆ˜๋ฅผ number ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ ํ›„ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
}
17 changes: 17 additions & 0 deletions tkddbs587/Stack/String_calculation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
function solution(my_string) {
let arr = my_string.split(" "); // ๊ณต๋ฐฑ์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐฐ์—ด ์ƒ์„ฑ
console.log(arr);
let result = Number(arr[0]); // 0๋ฒˆ ์ธ๋ฑ์Šค ์ˆซ์ž๋กœ ๋ณ€ํ™˜ = ์ฒซ๋ฒˆ์งธ ์ˆซ์ž ๊ตฌํ•˜๊ณ 
for (let i = 1; i < arr.length; i += 2) {
// ํ™€์ˆ˜ ์ธ๋ฑ์Šค ์ ‘๊ทผ = ์—ฐ์‚ฐ์ž์— ์ ‘๊ทผ
let operator = arr[i]; // ํ˜„์žฌ ์—ฐ์‚ฐ์ž
let NextNum = Number(arr[i + 1]); // ์—ฐ์‚ฐ์ž ์˜ค๋ฅธ์ชฝ ์ˆซ์ž
if (operator === "+") {
// ์—ฐ์‚ฐ์ž๊ฐ€ + ๋ฉด ๋”ํ•˜๊ณ 
result += NextNum;
} else {
result -= NextNum; // - ๋ฉด ๋นผ๊ธฐ
}
}
return result; // ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
}
8 changes: 8 additions & 0 deletions tkddbs587/Stack/String_reversal.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
function solution(str) {
var answer = "";
for (let i = str.length - 1; i >= 0; i--) {
// ๋ฌธ์ž์—ด ๋ณ€์ˆ˜ str์˜ ๋งˆ์ง€๋ง‰ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ํ•œ๊ธ€์ž์”ฉ ์ ‘๊ทผ
answer += str[i]; // ๋ฌธ์ž์—ด ๋ณ€์ˆ˜ answer์— ์ถ”๊ฐ€
}
return answer; // ๋’ค์ง‘์€ ๋ฌธ์ž์—ด ๋ฐ˜ํ™˜
}
19 changes: 19 additions & 0 deletions tkddbs587/Stack/Valid_parentheses.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
function solution(s) {
let stack = []; // ์Šคํƒ
let arr = s.split(""); // ๊ด„ํ˜ธ ๋ณ„๋กœ ์ž˜๋ผ์„œ ๋ฐฐ์—ด ์ƒ์„ฑ
for (let i = 0; i < arr.length; i++) {
if (arr[i] === "(") {
// ์—ด๋ฆฐ ๊ด„ํ˜ธ์ผ๋•Œ
stack.push(arr[i]); // ์Šคํƒ์— ์—ด๋ฆฐ ๊ด„ํ˜ธ ์ถ”๊ฐ€
} else {
// ๋‹ซํžŒ ๊ด„ํ˜ธ์ผ๋•Œ
stack.pop(); // ์Šคํƒ์— ์Œ“์•„๋‘” ์—ด๋ฆฐ ๊ด„ํ˜ธ ์ œ๊ฑฐ
}
}
if (stack.length === 0) {
// ์Šคํƒ์ด ๋น„์–ด์žˆ์œผ๋ฉด ์ง์ด ๋งž๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ length๊ฐ€ 0
return true; // ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
} else {
return false;
}
}