Skip to content

Commit ea4a45c

Browse files
juhee067bona1122
authored andcommitted
[Juhee] 25.01.05 (codingTestStd#11)
* 배열 자르기 / 기초 * 배열 원소의 길이 / 기초 * 배열 회전시키기 / 기초 * 중복된 숫자 개수 / 기초 * 제일 작은 수 제거하기 / 중급 * 나누어 떨어지는 숫자 배열 / 중급 * 행렬의 덧셈 / 중급 * 행렬의 곱셉 / 심화 * 스택 설명 * 문자열 뒤집기 / 기초 * 문자열 계산하기 / 기초
1 parent 6ac2176 commit ea4a45c

File tree

12 files changed

+111
-0
lines changed

12 files changed

+111
-0
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// 문자열 배열 strlist가 매개변수로 주어집니다.
2+
// strlist 각 원소의 길이를 담은 배열을 return하도록 solution 함수를 완성해주세요.
3+
4+
function solution(strlist) {
5+
return strlist.map((v) => v.length);
6+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
// array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요.
2+
// divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요.
3+
4+
function solution(arr, divisor) {
5+
const result = arr.filter((a) => a % divisor === 0).sort((a, b) => a - b);
6+
return result.length === 0 ? [-1] : result;
7+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// 정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때,
2+
// array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요.
3+
4+
function solution(array, n) {
5+
return array.filter((v) => v === n).length;
6+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
function solution(arr1, arr2) {
2+
const row = arr1.length;
3+
const col1 = arr1[0].length;
4+
const col2 = arr2[0].length;
5+
const answer = [];
6+
const result = Array.from(Array(row), () => Array(col2).fill(0));
7+
8+
for (let i = 0; i < row; i++) {
9+
for (let j = 0; j < col2; j++) {
10+
for (let k = 0; k < col1; k++) {
11+
result[i][j] += arr1[i][k] * arr2[k][j];
12+
}
13+
}
14+
}
15+
return result;
16+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다.
2+
// 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
3+
function solution(arr1, arr2) {
4+
const arr = arr1.length;
5+
const element = arr1[0].length;
6+
const result = [];
7+
for (let i = 0; i < arr; i++) {
8+
const row = [];
9+
for (let j = 0; j < element; j++) {
10+
row.push(arr1[i][j] + arr2[i][j]);
11+
}
12+
result.push(row);
13+
}
14+
return result;
15+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요.
2+
// 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요.
3+
// 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
4+
5+
function solution(arr) {
6+
if (arr.length <= 1) return [-1];
7+
const min = Math.min(...arr);
8+
return arr.filter((v) => v !== min);
9+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// 정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다.
2+
// 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
3+
4+
function solution(numbers, direction) {
5+
if (direction === 'right') {
6+
numbers.unshift(numbers.pop());
7+
} else {
8+
numbers.push(numbers.shift());
9+
}
10+
return numbers;
11+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// 정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때,
2+
// numbers의 num1번 째 인덱스부터 num2번째 인덱스까지
3+
// 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요.
4+
function solution(numbers, num1, num2) {
5+
return numbers.slice(num1, num2 + 1);
6+
}

juhee067/[week2]Stack/des.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
### 스택의 의미
2+
3+
![alt text](image.png)
4+
| 쌓아 올린다는 것을 의미
5+
6+
- 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있다.
7+
- top으로 정한 곳을 통해서만 접근 가능
8+
- 자료를 삭제할 때도 top을 통해서만 가능
9+
- top을 통해 삽입하는 연산 **PUSH**
10+
- top을 통해 삭제하는 연산 **POP**
11+
- 시간 순서에 따라 자료가 쌓여서 가장 마지막에 삽입된 자료가 가장 먼저 삭제
12+
13+
비어있는 스택에서 원소 추출 → stack underflow
14+
15+
스택이 넘치는 경우 → stack overflow
16+
17+
### 활용 예시
18+
19+
- 웹 브라우저 뒤로가기
20+
- 역순 문자열 만들기
21+
- 실행 취소
22+
- 후위 표기법 계산
23+
- 수식의 괄호 검사 : 연산자 우선순위 표현을 위한 괄호 검사
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
// 문자열 my_string이 매개변수로 주어집니다. my_string을 거꾸로 뒤집은 문자열을 return하도록 solution 함수를 완성해주세요.
2+
function solution(my_string) {
3+
return [...my_string].reverse().join('');
4+
}

0 commit comments

Comments
 (0)