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
6 changes: 6 additions & 0 deletions juhee067/[week1]Array/array_length.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// 문자열 배열 strlist가 매개변수로 주어집니다.
// strlist 각 원소의 길이를 담은 배열을 return하도록 solution 함수를 완성해주세요.

function solution(strlist) {
return strlist.map((v) => v.length);
}
7 changes: 7 additions & 0 deletions juhee067/[week1]Array/divided_number_array.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
// divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.

function solution(arr, divisor) {
const result = arr.filter((a) => a % divisor === 0).sort((a, b) => a - b);
return result.length === 0 ? [-1] : result;
}
6 changes: 6 additions & 0 deletions juhee067/[week1]Array/number_of_duplicate.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// 정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때,
// array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.

function solution(array, n) {
return array.filter((v) => v === n).length;
}
16 changes: 16 additions & 0 deletions juhee067/[week1]Array/procession_multiply.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
function solution(arr1, arr2) {
const row = arr1.length;
const col1 = arr1[0].length;
const col2 = arr2[0].length;
const answer = [];
const result = Array.from(Array(row), () => Array(col2).fill(0));

for (let i = 0; i < row; i++) {
for (let j = 0; j < col2; j++) {
for (let k = 0; k < col1; k++) {
result[i][j] += arr1[i][k] * arr2[k][j];
}
}
}
return result;
}
15 changes: 15 additions & 0 deletions juhee067/[week1]Array/procession_sum.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다.
// 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
function solution(arr1, arr2) {
const arr = arr1.length;
const element = arr1[0].length;
const result = [];
for (let i = 0; i < arr; i++) {
const row = [];
for (let j = 0; j < element; j++) {
row.push(arr1[i][j] + arr2[i][j]);
}
result.push(row);
}
return result;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

문제를 잘이해하지못했었는데 풀이를 보고 잘이해하게되었습니다.

9 changes: 9 additions & 0 deletions juhee067/[week1]Array/remove_min_number.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요.
// 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요.
// 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.

function solution(arr) {
if (arr.length <= 1) return [-1];
const min = Math.min(...arr);
return arr.filter((v) => v !== min);
}
11 changes: 11 additions & 0 deletions juhee067/[week1]Array/rotate_array.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// 정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다.
// 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.

function solution(numbers, direction) {
if (direction === 'right') {
numbers.unshift(numbers.pop());
} else {
numbers.push(numbers.shift());
}
return numbers;
}
6 changes: 6 additions & 0 deletions juhee067/[week1]Array/trim_array.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// 정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때,
// numbers의 num1번 째 인덱스부터 num2번째 인덱스까지
// 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.
function solution(numbers, num1, num2) {
return numbers.slice(num1, num2 + 1);
}
23 changes: 23 additions & 0 deletions juhee067/[week2]Stack/des.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
### 스택의 의미

![alt text](image.png)
| 쌓아 올린다는 것을 의미

- 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있다.
- top으로 정한 곳을 통해서만 접근 가능
- 자료를 삭제할 때도 top을 통해서만 가능
- top을 통해 삽입하는 연산 **PUSH**
- top을 통해 삭제하는 연산 **POP**
- 시간 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제

비어있는 스택에서 원소 추출 → stack underflow

스택이 넘치는 경우 → stack overflow

### 활용 예시

- 웹 브라우저 뒤로가기
- 역순 문자열 만들기
- 실행 취소
- 후위 표기법 계산
- 수식의 괄호 검사 : 연산자 우선순위 표현을 위한 괄호 검사
4 changes: 4 additions & 0 deletions juhee067/[week2]Stack/flipping_string.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// 문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
function solution(my_string) {
return [...my_string].reverse().join('');
}
Binary file added juhee067/[week2]Stack/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions juhee067/[week2]Stack/string_calculation.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// my_string은 "3 + 5"처럼 문자열로 된 수식입니다.
// 문자열 my_string이 매개변수로 주어질 때,
// 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요.

function solution(my_string) {
const newArr = my_string.split(' ').join('');
return eval(newArr);
}