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
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(".... . .-.. .-.. ---"));
Empty file.
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;
}
8 changes: 8 additions & 0 deletions Moonjonghoo/queue/점의_위치_구하기.js
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/tree/Invert_Binary_tree.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
var invertTree = function (root) {
if (root === null) {
return null;
}

// 왼쪽과 오른쪽 자식 노드를 교환
const temp = root.left;
root.left = root.right;
root.right = temp;

// 재귀적으로 자식 노드들을 반전
invertTree(root.left);
invertTree(root.right);

return root;
};
13 changes: 13 additions & 0 deletions Moonjonghoo/tree/binary_tree_inorder_traversal.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
var inorderTraversal = function (root) {
const result = [];

const traverse = (node) => {
if (node === null) return;
traverse(node.left); // 왼쪽 서브트리 방문
result.push(node.val); // 현재 노드 방문
traverse(node.right); // 오른쪽 서브트리 방문
};

traverse(root);
return result;
};
18 changes: 18 additions & 0 deletions Moonjonghoo/tree/maximum_depth_of_binary_tree.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @return {number}
*/
var maxDepth = function (root) {
if (!root) return 0;
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
};

console.log(maxDepth);
16 changes: 16 additions & 0 deletions Moonjonghoo/tree/same_tree.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
var isSameTree = function (p, q) {
// 두 노드가 모두 null인 경우
if (p === null && q === null) {
return true;
}
// 한 노드만 null인 경우
if (p === null || q === null) {
return false;
}
// 노드의 값이 다른 경우
if (p.val !== q.val) {
return false;
}
// 왼쪽 및 오른쪽 서브트리를 재귀적으로 비교
return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
};
Loading