diff --git a/yulrang/01_Array/01_Slice_array.js b/yulrang/01_Array/01_Slice_array.js new file mode 100644 index 0000000..f803fab --- /dev/null +++ b/yulrang/01_Array/01_Slice_array.js @@ -0,0 +1,8 @@ +function solution(numbers, num1, num2) { + var answer = []; + + for(let i = num1; i <= num2; i++){ + answer.push(numbers[i]); + } + return answer; +} \ No newline at end of file diff --git a/yulrang/01_Array/02_Length_of_array_items.js b/yulrang/01_Array/02_Length_of_array_items.js new file mode 100644 index 0000000..20de681 --- /dev/null +++ b/yulrang/01_Array/02_Length_of_array_items.js @@ -0,0 +1,9 @@ +function solution(strlist) { + var answer = []; + + for(let i=0; i el === n); + answer = filteredArr.length; + + return answer; +} \ No newline at end of file diff --git a/yulrang/01_Array/05_Remove_lowest_number.js b/yulrang/01_Array/05_Remove_lowest_number.js new file mode 100644 index 0000000..3393410 --- /dev/null +++ b/yulrang/01_Array/05_Remove_lowest_number.js @@ -0,0 +1,7 @@ +function solution(arr) { + if (arr.length === 1) { + return [-1]; + } + + return arr.filter((el) => el !== Math.min(...arr)); +} \ No newline at end of file diff --git a/yulrang/01_Array/06_Sum_of_matrix.js b/yulrang/01_Array/06_Sum_of_matrix.js new file mode 100644 index 0000000..7a63d5e --- /dev/null +++ b/yulrang/01_Array/06_Sum_of_matrix.js @@ -0,0 +1,12 @@ +function solution(arr1, arr2) { + var answer = new Array(arr1.length); + + for(let i=0; i { + if(el % divisor === 0) answer.push(el); + }) + answer.sort((a,b) => a-b); + + if(answer.length === 0) return [-1]; + + return answer; +} \ No newline at end of file diff --git a/yulrang/02_Stack/01_Reverse_string.js b/yulrang/02_Stack/01_Reverse_string.js new file mode 100644 index 0000000..fbd4c3b --- /dev/null +++ b/yulrang/02_Stack/01_Reverse_string.js @@ -0,0 +1,5 @@ +function solution(my_string) { + var answer = ''; + answer = my_string.split('').reverse().join(''); + return answer; +} \ No newline at end of file diff --git a/yulrang/02_Stack/02_Ctrl_Z.js b/yulrang/02_Stack/02_Ctrl_Z.js new file mode 100644 index 0000000..6072da9 --- /dev/null +++ b/yulrang/02_Stack/02_Ctrl_Z.js @@ -0,0 +1,15 @@ +function solution(s) { + var answer = 0; + let arr = s.split(' '); + let newArr = []; + + for(let i=0; i acc + Number(cur), 0); + return answer; +} \ No newline at end of file diff --git a/yulrang/02_Stack/03_English.js b/yulrang/02_Stack/03_English.js new file mode 100644 index 0000000..da05f42 --- /dev/null +++ b/yulrang/02_Stack/03_English.js @@ -0,0 +1,22 @@ +function solution(numbers) { + var answer = 0; + const numberObj = { + zero : 0, + one : 1, + two : 2, + three : 3, + four : 4, + five : 5, + six : 6, + seven : 7, + eight : 8, + nine : 9, + } + + for ( const num in numberObj ){ + numbers = numbers.replaceAll(num, numberObj[num]); + } + answer = Number(numbers); + + return answer; +} \ No newline at end of file diff --git a/yulrang/02_Stack/04_Calculate_string.js b/yulrang/02_Stack/04_Calculate_string.js new file mode 100644 index 0000000..f59e127 --- /dev/null +++ b/yulrang/02_Stack/04_Calculate_string.js @@ -0,0 +1,21 @@ +function solution(my_string) { + var answer = 0; + let newArr = []; + my_string.split(' ').forEach((el, idx, arr) => { + if(idx === 0) { + newArr.push(Number(el)); + } + if(el === '+' || el === '-') { + newArr.push(Number(arr[idx + 1])) + if (el === '+'){ + answer = newArr[0] + newArr[1]; + } else { + answer = newArr[0] - newArr[1]; + } + newArr = []; + newArr.push(answer); + } + }) + answer = newArr[0]; + return answer; +} \ No newline at end of file diff --git a/yulrang/02_Stack/05_KaKao_game.js b/yulrang/02_Stack/05_KaKao_game.js new file mode 100644 index 0000000..a6c061c --- /dev/null +++ b/yulrang/02_Stack/05_KaKao_game.js @@ -0,0 +1,26 @@ +function solution(board, moves) { + let answer = 0; + let basket = []; + + const runBasket = () => { + for(let i=basket.length-1; i>0; i--) { + if(basket[i] === basket[i-1]) { + basket.splice(i-1, 2); + answer += 2; + } + } + } + + for(let i=0; i { + if(el === '(') { + pairArr.push(el); + } else if(el === ')' && pairArr.includes('(')) { + pairArr.pop(); + } else + pairArr.push('-'); + }) + + answer = pairArr.length === 0 ? true : false; + + return answer; +} \ No newline at end of file diff --git a/yulrang/02_Stack/07_Dart_game.js b/yulrang/02_Stack/07_Dart_game.js new file mode 100644 index 0000000..2852f99 --- /dev/null +++ b/yulrang/02_Stack/07_Dart_game.js @@ -0,0 +1,54 @@ +function solution(dartResult) { + var answer = 0; + let scoreArr = []; + + dartResult.split('').forEach((el, idx, arr) => { + switch(el){ + case 'S': + scoreArr[scoreArr.length-1] = Math.pow(scoreArr[scoreArr.length-1], 1); + break; + case 'D': + scoreArr[scoreArr.length-1] = Math.pow(scoreArr[scoreArr.length-1], 2); + break; + case 'T': + scoreArr[scoreArr.length-1] = Math.pow(scoreArr[scoreArr.length-1], 3); + break; + case '1': + if(arr[idx+1] === '0') scoreArr.push(10); + else scoreArr.push(1); + break; + case '0': + if(arr[idx-1] !== '1') scoreArr.push(0); + break; + case '*': + break; + case '#': + break; + default : + scoreArr.push(Number(el)); + break; + } + }) + + dartResult.split('').forEach((el, idx, arr) => { + let targetIdx = 0; + + if(idx >= 6) targetIdx = 2; + else if(idx >= 4 && idx < 6) targetIdx = 1; + else targetIdx = 0; + + switch(el){ + case '*': + scoreArr[targetIdx] = scoreArr[targetIdx] * 2; + scoreArr[targetIdx - 1] = scoreArr[targetIdx - 1] * 2; + break; + case '#': + scoreArr[targetIdx] = scoreArr[targetIdx] * (-1); + break; + } + }); + + answer = scoreArr.reduce((acc, cur) => acc + cur, 0); + + return answer; +} \ No newline at end of file diff --git a/yulrang/03_Queue/01_Number_of_pair.js b/yulrang/03_Queue/01_Number_of_pair.js new file mode 100644 index 0000000..3ffd17d --- /dev/null +++ b/yulrang/03_Queue/01_Number_of_pair.js @@ -0,0 +1,13 @@ +function solution(n) { + var answer = 0; + let answerArr = []; + + for(let i = 1; i <= n; i++) { + if(n % i === 0) + answerArr.push([i, n/i]); + } + + answer = answerArr.length; + + return answer; +} \ No newline at end of file diff --git a/yulrang/03_Queue/02_Position_of_dot.js b/yulrang/03_Queue/02_Position_of_dot.js new file mode 100644 index 0000000..bf36fde --- /dev/null +++ b/yulrang/03_Queue/02_Position_of_dot.js @@ -0,0 +1,10 @@ +function solution(dot) { + var answer = 0; + + if(dot[0] > 0){ + answer = dot[1] > 0 ? 1 : 4; + } else if(dot[0] < 0) { + answer = dot[1] > 0 ? 2 : 3; + } + return answer; +} \ No newline at end of file diff --git a/yulrang/03_Queue/03_Login.js b/yulrang/03_Queue/03_Login.js new file mode 100644 index 0000000..09b1da3 --- /dev/null +++ b/yulrang/03_Queue/03_Login.js @@ -0,0 +1,18 @@ +function solution(id_pw, db) { + var answer = ''; + + for(const pair of db){ + if(pair[0] !== id_pw[0]) { + answer = "fail"; + } else { + if(pair[1] !== id_pw[1]){ + answer = "wrong pw"; + } + else { + answer = "login"; + } + break; + } + } + return answer; +} \ No newline at end of file diff --git a/yulrang/03_Queue/04_Unusual_sort.js b/yulrang/03_Queue/04_Unusual_sort.js new file mode 100644 index 0000000..0e9d66e --- /dev/null +++ b/yulrang/03_Queue/04_Unusual_sort.js @@ -0,0 +1,7 @@ +function solution(numlist, n) { + var answer = []; + + answer = numlist.sort((a,b) => (Math.abs(n-a) - Math.abs(n-b)) || (b-a)); + + return answer; +} \ No newline at end of file diff --git a/yulrang/03_Queue/05_Card_queue.js b/yulrang/03_Queue/05_Card_queue.js new file mode 100644 index 0000000..b48dbd2 --- /dev/null +++ b/yulrang/03_Queue/05_Card_queue.js @@ -0,0 +1,20 @@ +function solution(cards1, cards2, goal) { + var answer = ''; + + for(let i=0; i idx >= y && row[x] === "X")]; + x = pathArr[pathArr.length-1][0]; + y = pathArr[pathArr.length-1][1] + AMOUNT; + } else if (DIRECTION === "N"){ + blockPos = [x, park.slice(0, y).reverse().findIndex((row, idx) => row[x] === "X")]; + if (blockPos[1] !== -1) blockPos[1] = y - blockPos[1] - 1; + x = pathArr[pathArr.length-1][0]; + y = pathArr[pathArr.length-1][1] - AMOUNT; + } + + if (x < 0 || x >= WIDTH || y < 0 || y >= HEIGHT){ + continue; + } + if(!blockPos.includes(-1)){ + if((y === blockPos[1] && x >= blockPos[0] && pathArr[pathArr.length > 1 ? pathArr.length-2 : 0][0] < blockPos[0]) || + (y === blockPos[1] && x <= blockPos[0] && pathArr[pathArr.length > 1 ? pathArr.length-2 : 0][0] > blockPos[0]) || + (x === blockPos[0] && y >= blockPos[1] && pathArr[pathArr.length > 1 ? pathArr.length-2 : 0][1] < blockPos[1]) || + (x === blockPos[0] && y <= blockPos[1] && pathArr[pathArr.length > 1 ? pathArr.length-2 : 0][1] > blockPos[1]) ) { + continue; + } + } + + pathArr.push([x, y]); + } + + return pathArr[pathArr.length-1].reverse(); +} + diff --git a/yulrang/03_Queue/07_Hamberger.js b/yulrang/03_Queue/07_Hamberger.js new file mode 100644 index 0000000..15c9fd6 --- /dev/null +++ b/yulrang/03_Queue/07_Hamberger.js @@ -0,0 +1,12 @@ +function solution(ingredient) { + var answer = 0; + + for(let i=0; i