Skip to content

Commit 3277943

Browse files
oh-chaeyeonbona1122
authored andcommitted
[oh-chaeyeon] 25.01.02 (codingTestStd#7)
* 배열 자르기 / 기초 * 배열 원소의 길이 / 기초 * 배열 회전시키기 / 기초 * 중복된 숫자 개수 / 기초 * 제일 작은 수 제거하기 / 중급 * 행렬의 덧셈 / 중급 * 나누어 떨어지는 숫자 배열 / 중급 * 행렬의 곱셈 / 심화 * 교점에 별 만들기 / 심화 * n^2 배열 자르기 / 심화
1 parent 40463a8 commit 3277943

11 files changed

+106
-0
lines changed

oh-chaeyeon/.gitkeep

Whitespace-only changes.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
function solution(n, left, right) {
2+
const answer = [];
3+
for (let k = left; k <= right; k++) {
4+
const i = Math.floor(k / n);
5+
const j = k % n;
6+
answer.push(Math.max(i, j) + 1);
7+
}
8+
return answer;
9+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
function solution(line) {
2+
const points = [];
3+
4+
for (let i = 0; i < line.length; i++) {
5+
for (let j = i + 1; j < line.length; j++) {
6+
const [A1, B1, C1] = line[i];
7+
const [A2, B2, C2] = line[j];
8+
9+
const denominator = A1 * B2 - A2 * B1;
10+
11+
if (denominator !== 0) {
12+
const x = (B1 * C2 - B2 * C1) / denominator;
13+
const y = (A2 * C1 - A1 * C2) / denominator;
14+
15+
if (Number.isInteger(x) && Number.isInteger(y)) {
16+
points.push([x, y]);
17+
}
18+
}
19+
}
20+
}
21+
22+
const xs = points.map((point) => point[0]);
23+
const ys = points.map((point) => point[1]);
24+
25+
const minX = Math.min(...xs);
26+
const maxX = Math.max(...xs);
27+
const minY = Math.min(...ys);
28+
const maxY = Math.max(...ys);
29+
30+
const width = maxX - minX + 1;
31+
const height = maxY - minY + 1;
32+
const grid = Array.from({ length: height }, () => Array(width).fill("."));
33+
34+
for (const [x, y] of points) {
35+
grid[maxY - y][x - minX] = "*";
36+
}
37+
38+
return grid.map((row) => row.join(""));
39+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
function solution(arr, divisor) {
2+
var answer = arr.filter((num) => num % divisor === 0);
3+
if (answer.length === 0) return [-1];
4+
return answer.sort((a, b) => a - b);
5+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
function solution(strlist) {
2+
return strlist.map((str) => str.length);
3+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
function solution(numbers, num1, num2) {
2+
var answer = numbers.slice(num1, num2 + 1);
3+
return answer;
4+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
function solution(numbers, direction) {
2+
if (direction === "right") {
3+
return [
4+
numbers[numbers.length - 1],
5+
...numbers.slice(0, numbers.length - 1),
6+
];
7+
} else if (direction === "left") {
8+
return [...numbers.slice(1), numbers[0]];
9+
}
10+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
function solution(arr) {
2+
const min = Math.min(...arr);
3+
var answer = arr.filter((num) => num !== min);
4+
return answer.length === 0 ? [-1] : answer;
5+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
function solution(array, n) {
2+
var answer = array.reduce((count, num) => {
3+
return num === n ? count + 1 : count;
4+
}, 0);
5+
return answer;
6+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
function solution(arr1, arr2) {
2+
const rowsA = arr1.length;
3+
const colsA = arr1[0].length;
4+
const colsB = arr2[0].length;
5+
6+
const result = Array.from({ length: rowsA }, () => Array(colsB).fill(0));
7+
8+
// 행렬 곱셈
9+
for (let i = 0; i < rowsA; i++) {
10+
for (let j = 0; j < colsB; j++) {
11+
for (let k = 0; k < colsA; k++) {
12+
result[i][j] += arr1[i][k] * arr2[k][j];
13+
}
14+
}
15+
}
16+
return result;
17+
}

0 commit comments

Comments
 (0)