Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 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
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--;
}
}
}
22 changes: 22 additions & 0 deletions Moonjonghoo/set/무작위로_K개의_수_뽑기.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
function solution(arr, k) {
var answer = [];
for (let i = 0; i < arr.length; i++) {
if (!answer.includes(arr[i])) {
answer.push(arr[i]);
}
}

if (answer.length > k) {
return answer.slice(0, k);
} else if (answer.length < k) {
while (answer.length !== k) {
answer.push(-1);
}
return answer;
} else {
return answer;
}
}

console.log(solution([0, 1, 1, 2, 2, 3], 5));
console.log(solution([0, 1, 1, 1, 1], 4));
17 changes: 17 additions & 0 deletions Moonjonghoo/set/소인수분해.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
function solution(n) {
var answer = [];
let division = 2;
while (n !== 1) {
if (n % division === 0) {
n = n / division;
answer.push(division);
} else {
division++;
}
}
return Array.from(new Set(answer));
}

console.log(solution(12)); // 기대값: [2, 3]
console.log(solution(17)); // 기대값: [17]
console.log(solution(420)); // 기대값: [2, 3, 5, 7]
14 changes: 14 additions & 0 deletions Moonjonghoo/set/중복된_문자_제거.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
function solution(my_string) {
var answer = "";
let set = [];
for (let i = 0; i < my_string.length; i++) {
if (!set.includes(my_string[i])) {
set.push(my_string[i]);
answer += my_string[i];
}
}
return answer;
}

console.log(solution("people")); // 기대값: "peol"
console.log(solution("We are the world")); // 기대값: "We arthwold"
44 changes: 44 additions & 0 deletions Moonjonghoo/set/한_번만_등장한_문자.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
// function solution(s) {
// var answer = "";
// let arr = [];
// for (let i = 0; i < s.length; i++) {
// if (!arr.includes(s[i])) {
// arr.push(s[i]);
// } else {
// arr = arr.filter((e) => e !== s[i]);
// }
// }

// answer = arr.sort().join("");
// return answer;
// }

// console.log(solution("abcabcadc")); // 기대값: "d"
// console.log(solution("abdc")); // 기대값: "abdc"
// console.log(solution("hello")); // 기대값: "eho"
// console.log(solution("hlelo"));

function solution(s) {
var answer = "";
let arr = [];
let hash = new Map();
for (let i = 0; i < s.length; i++) {
if (!hash.get(s[i])) {
hash.set(s[i], 1);
} else {
hash.set(s[i], hash.get(s[i]) + 1);
}
}
for (let [key, value] of hash) {
if (value === 1) {
arr.push(key);
}
}
answer = arr.sort().join("");
if (arr.length === 0) return "";
return answer;
}

console.log(solution("abcabcadc")); // 기대값: "d"
console.log(solution("abdc")); // 기대값: "abdc"
console.log(solution("hello")); // 기대값: "eho"
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