Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
ba82c0e
String_Reversal / ๊ธฐ์ดˆ
Moonjonghoo Jan 12, 2025
65829ea
control_z / ๊ธฐ์ดˆ
Moonjonghoo Jan 12, 2025
9711ab0
I_don't_like_English /๊ธฐ์ดˆ
Moonjonghoo Jan 12, 2025
a359bb2
String_Calculation / ๊ธฐ์ดˆ
Moonjonghoo Jan 12, 2025
f8bca4e
Crane_Doll_Picking_Game / ์ค‘๊ธ‰
Moonjonghoo Jan 12, 2025
e018190
Merge branch 'main' of https://github.com/codingTestStd/CoteAndAlgoriโ€ฆ
Moonjonghoo Jan 19, 2025
7b26d65
์ˆœ์„œ์Œ์˜_๊ฐœ์ˆ˜ / ๊ธฐ์ดˆ
Moonjonghoo Jan 19, 2025
0f583fc
์ ์˜_์œ„์น˜_๊ตฌํ•˜๊ธฐ / ๊ธฐ์ดˆ
Moonjonghoo Jan 19, 2025
276bb6e
๋กœ๊ทธ์ธ_์„ฑ๊ณต? / ๊ธฐ์ดˆ
Moonjonghoo Jan 19, 2025
f93d346
ํŠน์ดํ•œ_์ •๋ ฌ / ๊ธฐ์ดˆ
Moonjonghoo Jan 19, 2025
78bad87
ํ”„๋กœ์„ธ์Šค / ๊ณ ๊ธ‰
Moonjonghoo Jan 19, 2025
1d1ce1d
ํ”„๋กœ์„ธ์Šค /๊ณ ๊ธ‰ ์ˆ˜์ •
Moonjonghoo Jan 19, 2025
764f8f2
๋ชจ์Šค๋ถ€ํ˜ธ(1) / ๊ธฐ์ดˆ
Moonjonghoo Jan 26, 2025
f733e3b
A๋กœ B๋งŒ๋“ค๊ธฐ /๊ธฐ์ดˆ
Moonjonghoo Jan 26, 2025
ac22d56
์ง„๋ฃŒ์ˆœ์„œ/ ๊ธฐ์ดˆ
Moonjonghoo Jan 26, 2025
e55c16d
๋“ฑ์ˆ˜๋งค๊ธฐ๊ธฐ /๊ธฐ์ดˆ
Moonjonghoo Jan 26, 2025
4307984
์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜ /์ค‘๊ธ‰
Moonjonghoo Jan 26, 2025
0688b20
maximum_depth_of_binary_tree / ๊ธฐ์ดˆ
Moonjonghoo Feb 6, 2025
9eb2c85
binary_tree_inorder_traversal /๊ธฐ์ดˆ
Moonjonghoo Feb 10, 2025
43f929c
same_tree /๊ธฐ์ดˆ
Moonjonghoo Feb 11, 2025
2d78170
Invert_Binary_tree/๊ธฐ์ดˆ
Moonjonghoo Feb 11, 2025
330d54e
์ค‘๋ณต๋œ_๋ฌธ์ž_์ œ๊ฑฐ /๊ธฐ์ดˆ
Moonjonghoo Feb 14, 2025
2a930d7
ํ•œ_๋ฒˆ๋งŒ_๋“ฑ์žฅํ•œ_๋ฌธ์ž /๊ธฐ์ดˆ
Moonjonghoo Feb 14, 2025
cbac4ce
์†Œ์ธ์ˆ˜๋ถ„ํ•ด /์ค‘๊ธ‰
Moonjonghoo Feb 14, 2025
0506e41
๋ฌด์ž‘์œ„๋กœ_K๊ฐœ์˜_์ˆ˜_๋ฝ‘๊ธฐ / ๊ธฐ์ดˆ
Moonjonghoo Feb 14, 2025
851e2d5
contains_duplicate /๊ธฐ์ดˆ
Moonjonghoo Feb 14, 2025
0b28b41
intersection_of_two_array /๊ธฐ์ดˆ
Moonjonghoo Feb 14, 2025
ad42e57
count_the_number_of_consistent_strings /๊ธฐ์ดˆ
Moonjonghoo Feb 14, 2025
d3d285c
design_hashset/๊ธฐ์ดˆ
Moonjonghoo Feb 16, 2025
e49f35c
repeated_dna_sequences /์ค‘๊ธ‰
Moonjonghoo Feb 16, 2025
69d4008
longest_consecutive_sequence /์ค‘๊ธ‰
Moonjonghoo Feb 16, 2025
5abc1e3
DFS์™€_BFS /๊ธฐ์ดˆ
Moonjonghoo Feb 25, 2025
4a84840
์ „๋ ฅ๋ง์„_๋‘˜๋กœ_๋‚˜๋ˆ„๊ธฐ /์‹ฌํ™”
Moonjonghoo Feb 25, 2025
d2866d5
๊ฒŒ์ž„_๋งต_์ตœ๋‹จ๊ฑฐ๋ฆฌ /์ค‘๊ธ‰
Moonjonghoo Feb 25, 2025
1dd12f9
ํƒ€๊ฒŸ_๋„˜๋ฒ„ /์ค‘๊ธ‰
Moonjonghoo Feb 25, 2025
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
15 changes: 15 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
// IntelliSense๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€๋Šฅํ•œ ํŠน์„ฑ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์„ธ์š”.
// ๊ธฐ์กด ํŠน์„ฑ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ๋ณด๋ ค๋ฉด ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.
// ์ž์„ธํ•œ ๋‚ด์šฉ์„ ๋ณด๋ ค๋ฉด https://go.microsoft.com/fwlink/?linkid=830387์„(๋ฅผ) ๋ฐฉ๋ฌธํ•˜์„ธ์š”.
"version": "0.2.0",
"configurations": [
{
"type": "chrome",
"request": "launch",
"name": "localhost์— ๋Œ€ํ•ด Chrome ์‹œ์ž‘",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}"
}
]
}
35 changes: 35 additions & 0 deletions Moonjonghoo/graph/DFS์™€_BFS.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");

const [N, M, V] = input[0].split(" ").map(Number);
const edges = input.slice(1).map((line) => line.split(" ").map(Number));

const graph = Array.from({ length: N + 1 }, () => []);
edges.forEach(([a, b]) => {
graph[a].push(b);
graph[b].push(a);
});
graph.forEach((node) => node.sort((a, b) => a - b));

const dfs = (v, visited = []) => {
if (visited.includes(v)) return;
visited.push(v);
graph[v].forEach((n) => dfs(n, visited));
return visited;
};

const bfs = (v) => {
let queue = [v],
visited = [];
while (queue.length) {
let node = queue.shift();
if (!visited.includes(node)) {
visited.push(node);
queue.push(...graph[node].filter((n) => !visited.includes(n)));
}
}
return visited;
};

console.log(dfs(V, []).join(" "));
console.log(bfs(V).join(" "));
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
function solution(maps) {
let n = maps.length;
let m = maps[0].length;
let answer = 1;
let visited = maps;
const dx = [-1, 1, 0, 0];
const dy = [0, 0, -1, 1];
let queue = [];
queue.push([0, 0]);
visited[0][0] = 0;

while (queue.length > 0) {
let size = queue.length;

for (let i = 0; i < size; i++) {
let [x, y] = queue.shift();

for (let j = 0; j < 4; j++) {
let nx = x + dx[j];
let ny = y + dy[j];

if (nx >= 0 && nx < n && ny >= 0 && ny < m && visited[nx][ny] === 1) {
if (nx == n - 1 && ny == m - 1) {
return ++answer;
}
queue.push([nx, ny]);
visited[nx][ny] = 0;
}
}
}
answer++;
}
return -1;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
function solution(n, wires) {
let answer = Infinity;

function dfs(graph, start, visited) {
visited[start] = true;
let count = 1;

for (let i = 0; i < graph[start].length; i++) {
const neighbor = graph[start][i];
if (!visited[neighbor]) {
count += dfs(graph, neighbor, visited);
}
}

return count;
}

for (let i = 0; i < n - 1; i++) {
const graph = Array(n)
.fill(null)
.map(() => []);
for (let j = 0; j < n - 1; j++) {
if (i === j) continue;
const [a, b] = wires[j];
graph[a - 1].push(b - 1);
graph[b - 1].push(a - 1);
}

const visited = Array(n).fill(false);
let count1 = 0;
let count2 = 0;

for (let j = 0; j < n; j++) {
if (!visited[j]) {
if (count1 === 0) {
count1 = dfs(graph, j, visited);
} else {
count2 = dfs(graph, j, visited);
}
}
}

const diff = Math.abs(count1 - count2);
answer = Math.min(answer, diff);
}

return answer;
}
25 changes: 25 additions & 0 deletions Moonjonghoo/graph/ํƒ€๊ฒŸ_๋„˜๋ฒ„.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
function solution(numbers, target) {
let n = numbers.length;
let check = Array.from({ length: n }, () => false);
let answer = 0;
function DFS(v) {
if (v === n) {
let sum = 0;
for (let i = 0; i < n; i++) {
if (check[i] === true) {
sum += numbers[i];
} else if (check[i] === false) {
sum -= numbers[i];
}
}
if (sum === target) answer++;
} else {
check[v] = true;
DFS(v + 1);
check[v] = false;
DFS(v + 1);
}
}
DFS(0);
return answer;
}
28 changes: 28 additions & 0 deletions Moonjonghoo/hash/A๋กœ B๋งŒ๋“ค๊ธฐ.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
function solution(before, after) {
let hash1 = new Map();
let hash2 = new Map();

for (let i = 0; i < before.length; i++) {
hash1.set(before[i], (hash1.get(before[i]) || 0) + 1);
hash2.set(after[i], (hash2.get(after[i]) || 0) + 1);
}

// Map ๋น„๊ต ํ•จ์ˆ˜
function compareMaps(map1, map2) {
if (map1.size !== map2.size) return false; // ํฌ๊ธฐ ๋น„๊ต
for (let [key, value] of map1) {
if (map2.get(key) !== value) return false; // ํ‚ค-๊ฐ’ ๋น„๊ต
}
return true;
}

// ๋น„๊ต ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜
return compareMaps(hash1, hash2) ? 1 : 0;
}

console.log(solution("olleh", "hello")); // 1
console.log(solution("apple", "ppale")); // 0

console.log(solution("olleh", "hello"));

//๋ฐ”๊ฟ€์ˆ˜์žˆ๋‹ค๋Š”๊ฒƒ์€ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ข…๋ฅ˜์™€ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์œผ๋ฉด๋ฉ๋‹ˆ๋‹ค.
10 changes: 10 additions & 0 deletions Moonjonghoo/hash/๋“ฑ์ˆ˜ ๋งค๊ธฐ๊ธฐ.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
function solution(score) {
// ๊ฐ ํ•™์ƒ์˜ ํ‰๊ท  ์ ์ˆ˜ ๊ณ„์‚ฐ
const averages = score.map(([eng, math]) => (eng + math) / 2);

// ํ‰๊ท  ์ ์ˆ˜๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ๋“ฑ์ˆ˜ ๋งค๊ธฐ๊ธฐ
const sorted = [...averages].sort((a, b) => b - a);

// ์›๋ž˜ ํ‰๊ท  ์ ์ˆ˜ ๋ฐฐ์—ด์˜ ๊ฐ ๊ฐ’์ด ์ •๋ ฌ๋œ ๋ฐฐ์—ด์—์„œ ๋ช‡ ๋ฒˆ์งธ ์ˆœ์œ„์ธ์ง€ ๊ณ„์‚ฐ
return averages.map((avg) => sorted.indexOf(avg) + 1);
}
41 changes: 41 additions & 0 deletions Moonjonghoo/hash/๋ชจ์Šค๋ถ€ํ˜ธ(1).js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
function solution(letter) {
var answer = "";
let morse = {
".-": "a",
"-...": "b",
"-.-.": "c",
"-..": "d",
".": "e",
"..-.": "f",
"--.": "g",
"....": "h",
"..": "i",
".---": "j",
"-.-": "k",
".-..": "l",
"--": "m",
"-.": "n",
"---": "o",
".--.": "p",
"--.-": "q",
".-.": "r",
"...": "s",
"-": "t",
"..-": "u",
"...-": "v",
".--": "w",
"-..-": "x",
"-.--": "y",
"--..": "z",
};

let arr = letter.split(" ");
for (let i = 0; i < arr.length; i++) {
if (morse.hasOwnProperty(arr[i])) {
answer += morse[arr[i]];
}
}
return answer;
}

console.log(solution(".... . .-.. .-.. ---"));
16 changes: 16 additions & 0 deletions Moonjonghoo/hash/์ง„๋ฃŒ์ˆœ์„œ.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
function solution(emergency) {
var answer = [];
let newarr = emergency.slice();
newarr.sort((a, b) => b - a);
let map = new Map();
for (let i = 0; i < newarr.length; i++) {
map.set(newarr[i], i + 1);
}
for (let i = 0; i < emergency.length; i++) {
let number = map.get(emergency[i]);
answer.push(number);
}
return answer;
}

console.log(solution([3, 76, 24]));
11 changes: 11 additions & 0 deletions Moonjonghoo/queue/๋กœ๊ทธ์ธ_์„ฑ๊ณต.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
function solution(id_pw, db) {
const [id, pw] = id_pw;

for (const [dbId, dbPw] of db) {
if (id === dbId) {
return pw === dbPw ? "login" : "wrong pw";
}
}

return "fail";
}
14 changes: 14 additions & 0 deletions Moonjonghoo/queue/์ˆœ์„œ์Œ์˜_๊ฐœ์ˆ˜.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
function solution(n) {
let count = 0;

for (let i = 1; i <= Math.sqrt(n); i++) {
if (n % i === 0) {
count++; // i๊ฐ€ ์•ฝ์ˆ˜
if (i !== n / i) {
count++; // i๊ฐ€ n์˜ ์ œ๊ณฑ๊ทผ์ด ์•„๋‹ˆ๋ฉด ๋‚˜๋จธ์ง€ ์ง๋„ ์ถ”๊ฐ€
}
}
}

return count;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
function solution(dot) {
const [x, y] = dot;

if (x > 0 && y > 0) return 1; // 1์‚ฌ๋ถ„๋ฉด
if (x < 0 && y > 0) return 2; // 2์‚ฌ๋ถ„๋ฉด
if (x < 0 && y < 0) return 3; // 3์‚ฌ๋ถ„๋ฉด
if (x > 0 && y < 0) return 4; // 4์‚ฌ๋ถ„๋ฉด
}
11 changes: 11 additions & 0 deletions Moonjonghoo/queue/ํŠน์ดํ•œ_์ •๋ ฌ.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
function solution(numlist, n) {
return numlist.sort((a, b) => {
const diffA = Math.abs(a - n);
const diffB = Math.abs(b - n);

if (diffA === diffB) {
return b - a;
}
return diffA - diffB;
});
}
17 changes: 17 additions & 0 deletions Moonjonghoo/queue/ํ”„๋กœ์„ธ์Šค.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
function solution(priorities, location) {
let order = 0;

while (priorities.length > 0) {
const current = priorities.shift();
if (priorities.some((priority) => priority > current)) {
priorities.push(current);
location = location === 0 ? priorities.length - 1 : location - 1;
} else {
order++;
if (location === 0) {
return order; // ๋ชฉํ‘œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋˜์—ˆ์„ ๋•Œ ์ˆœ์„œ๋ฅผ ๋ฐ˜ํ™˜
}
location--;
}
}
}
16 changes: 16 additions & 0 deletions Moonjonghoo/set/Contains_Duplicate.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/**
* @param {number[]} nums
* @return {boolean}
*/
var containsDuplicate = function (nums) {
let hash = new Set();
for (let i = 0; i < nums.length; i++) {
if (!hash.has(nums[i])) {
hash.add(nums[i]);
}
}
if (hash.size !== nums.length) return true;
else {
return false;
}
};
12 changes: 12 additions & 0 deletions Moonjonghoo/set/Intersection_of_two_arrays.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number[]}
*/
var intersection = function (nums1, nums2) {
let hash = new Set(nums2);
const intersectionSet = new Set([...nums1].filter((x) => hash.has(x)));
return [...intersectionSet];
};

console.log(intersection([1, 2, 2, 1], [2, 2]));
21 changes: 21 additions & 0 deletions Moonjonghoo/set/count_the_number_of_consistent_strings.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/**
* @param {string} allowed
* @param {string[]} words
* @return {number}
*/
var countConsistentStrings = function (allowed, words) {
let hash = new Set(allowed.split(""));
let answer = words.length;
console.log(hash);
for (let i = 0; i < words.length; i++) {
for (let j = 0; j < words[i].length; j++) {
if (!hash.has(words[i][j])) {
answer--;
break;
}
}
}
return answer;
};

console.log(countConsistentStrings("ab", ["ad", "bd", "aaab", "baa", "badab"]));
Loading
Loading