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
9 changes: 9 additions & 0 deletions jinjuseo/8주차/240513/다음에_올_숫자/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
const solution = (common) => {
if (common[2] / common[1] === common[1] / common[0]) {
const multiple = common[2] / common[1];
return common.at(-1) * multiple;
} else {
const diff = common[2] - common[1];
return common.at(-1) + diff;
}
};
18 changes: 18 additions & 0 deletions jinjuseo/8주차/240513/문자열_밀기/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const solution = (A, B) => {
let arr = A.split("");
let count = 0;
let flag = false;
for (let i = 0; i < arr.length; i++) {
if (arr.join("") === B) {
flag = true;
break;
}
let curr = arr.pop();
arr.unshift(curr);
count++;
}
return flag ? count : -1;
};

//신박한 풀이
// let solution=(a,b)=>(b+b).indexOf(a)
8 changes: 8 additions & 0 deletions jinjuseo/8주차/240513/연속된_수의_합/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const solution = (num, total) => {
let medium = Math.floor(total / num);
let medIndex = num % 2 > 0 ? Math.floor(num / 2) : num / 2 - 1;
let arr = new Array(num)
.fill(medium)
.map((x, i) => (i > medIndex ? x + (i - medIndex) : x - (medIndex - i)));
return arr;
};
18 changes: 18 additions & 0 deletions jinjuseo/8주차/240514/삼총사/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
const solution = (number) => {
let sum = 0;
let arr = [];

while (number.length > 3) {
const curr = number.pop();
for (let i = 0; i < number.length; i++) {
for (let j = i + 1; j < number.length; j++) {
if (curr + number[i] + number[j] === 0) {
arr.push([curr, number[i], number[j]]);
}
}
}
}
if (number.reduce((a, c) => a + c) === 0) arr.push([...number]);

return arr.length;
};
31 changes: 31 additions & 0 deletions jinjuseo/8주차/240514/소수_찾기/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
const solution = (numbers) => {
const arr = [...numbers.split("")];
const set = new Set();
const visited = new Array(arr.length).fill(false);
for (let i = 0; i < arr.length; i++) {
visited[i] = true;
dfs(arr, set, arr[i], visited);
visited[i] = false; // 각 DFS 호출 후 방문 배열을 초기화합니다.
}
return set.size;
};

const checkPrime = (num) => {
if (num === 1 || num === 0) return false;
for (let i = 2; i * i <= num; i++) {
if (num % i === 0) return false;
}
return true;
};

const dfs = (arr, set, num, visited) => {
if (checkPrime(Number(num))) set.add(Number(num));

for (let i = 0; i < arr.length; i++) {
if (!visited[i]) {
visited[i] = true;
dfs(arr, set, num + arr[i], visited);
visited[i] = false; // 각 DFS 호출 후 방문 배열을 초기화합니다.
}
}
};
33 changes: 33 additions & 0 deletions jinjuseo/8주차/240517/여행경로/solution.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/*
- 공항 : 알파벳대문자3글자
- 공항수 : 3개이상 10000개 이하
- [a,b] : a->b
- 모두 사용해야함
- 가능한 경로 2개이상? 알파벳 순서순
*/
const solution = (tickets) => {
const routes = [];
const visited = Array(tickets.length).fill(false);

const dfs = (start, route) => {
if (route.length === tickets.length) {
route.push(start);
routes.push([...route]);
route.pop();
return;
}

for (let i = 0; i < tickets.length; i++) {
if (!visited[i] && tickets[i][0] === start) {
visited[i] = true;
route.push(start);
dfs(tickets[i][1], route);
route.pop();
visited[i] = false;
}
}
};
dfs("ICN", []);
routes.sort(); // 사전순 정렬
return routes[0];
};