Skip to content

Commit 31a6eec

Browse files
committed
정렬과 그리디 알고리즘 풀이
1 parent 1676f46 commit 31a6eec

10 files changed

+242
-84
lines changed

섹션6/5.쇠막대기.html

-27
This file was deleted.

섹션6/6.공주구하기.html

-47
This file was deleted.

섹션7/10.이분검색.html

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<html>
2+
<head>
3+
<meta charset="UTF-8" />
4+
<title>출력결과</title>
5+
</head>
6+
<body>
7+
<script>
8+
function solution(target, arr) {
9+
let answer;
10+
arr.sort((a, b) => a - b);
11+
let lt = 0,
12+
rt = arr.length - 1;
13+
while (lt <= rt) {
14+
let mid = parseInt((lt + rt) / 2);
15+
if (arr[mid] === target) {
16+
answer = mid + 1;
17+
break;
18+
} else if (arr[mid] > target) rt = mid - 1;
19+
else lt = mid + 1;
20+
}
21+
22+
return answer;
23+
}
24+
25+
let arr = [23, 87, 65, 12, 57, 32, 99, 81];
26+
console.log(solution(32, arr));
27+
</script>
28+
</body>
29+
</html>

섹션7/2.버블정렬.html

+2
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@
77
<script>
88
function solution(arr) {
99
let answer = arr;
10+
1011
for (let i = 0; i < arr.length - 1; i++) {
1112
for (let j = 0; j < arr.length - i - 1; j++) {
1213
if (arr[j] > arr[j + 1]) {
1314
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
1415
}
1516
}
1617
}
18+
1719
return answer;
1820
}
1921

섹션7/3.스페셜정렬.html

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<html>
2+
<head>
3+
<meta charset="UTF-8" />
4+
<title>출력결과</title>
5+
</head>
6+
<body>
7+
<script>
8+
function solution(arr) {
9+
let answer = [];
10+
11+
for (let x of arr) {
12+
if (x < 0) {
13+
answer.push(x);
14+
}
15+
}
16+
for (let x of arr) {
17+
if (x > 0) {
18+
answer.push(x);
19+
}
20+
}
21+
// for (let x of arr) {
22+
// if (x < 0) answer.push(x);
23+
// }
24+
// for (let x of arr) {
25+
// if (x > 0) answer.push(x);
26+
// }
27+
return answer;
28+
}
29+
30+
let arr = [1, 2, 3, -3, -2, 5, 6, -6];
31+
console.log(solution(arr));
32+
</script>
33+
</body>
34+
</html>

섹션7/4.삽입정렬.html

+25-10
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<html>
1+
<!-- <html>
22
<head>
33
<meta charset="UTF-8" />
44
<title>출력결과</title>
@@ -7,22 +7,27 @@
77
<script>
88
function solution(arr) {
99
let answer = arr;
10+
1011
for (let i = 0; i < arr.length; i++) {
11-
let tmp = arr[i],
12-
j;
13-
for (j = i - 1; j >= 0; j--) {
14-
if (arr[j] > tmp) arr[j + 1] = arr[j];
15-
else break;
16-
}
17-
arr[j + 1] = tmp;
12+
let temp = arr[i];
1813
}
14+
15+
// for (let i = 0; i < arr.length; i++) {
16+
// let tmp = arr[i],
17+
// j;
18+
// for (j = i - 1; j >= 0; j--) {
19+
// if (arr[j] > tmp) arr[j + 1] = arr[j];
20+
// else break;
21+
// }
22+
// arr[j + 1] = tmp;
23+
// }
1924
}
2025
2126
let arr = [11, 7, 5, 6, 10, 9];
2227
console.log(solution(arr));
2328
</script>
2429
</body>
25-
</html>
30+
</html> -->
2631

2732
<html>
2833
<head>
@@ -34,14 +39,24 @@
3439
function solution(arr) {
3540
let answer = [];
3641
answer.push(arr[0]);
42+
3743
for (let i = 1; i < arr.length; i++) {
3844
for (let j = 0; j < answer.length; j++) {
3945
if (arr[i] < answer[j]) {
40-
answer.splice(j, 0, arr[i]);
46+
answer.slice(j, 0, arr[i]);
4147
break;
4248
}
4349
}
4450
}
51+
52+
// for (let i = 1; i < arr.length; i++) {
53+
// for (let j = 0; j < answer.length; j++) {
54+
// if (arr[i] < answer[j]) {
55+
// answer.splice(j, 0, arr[i]);
56+
// break;
57+
// }
58+
// }
59+
// }
4560
return answer;
4661
}
4762

섹션7/6.장난꾸러기현수.html

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<html>
2+
<head>
3+
<meta charset="UTF-8" />
4+
<title>출력결과</title>
5+
</head>
6+
<body>
7+
<script>
8+
function solution(arr) {
9+
let answer = [];
10+
11+
let sortArr = [...arr].sort((a, b) => a - b);
12+
13+
for (let i = 0; i < sortArr.length; i++) {
14+
if (arr[i] !== sortArr[i]) {
15+
answer.push(i + 1);
16+
}
17+
}
18+
19+
return answer;
20+
}
21+
22+
let arr = [120, 125, 152, 130, 135, 135, 143, 127, 160];
23+
console.log(solution(arr));
24+
</script>
25+
</body>
26+
</html>

섹션7/7.좌표정렬.html

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<html>
2+
<head>
3+
<meta charset="UTF-8" />
4+
<title>출력결과</title>
5+
</head>
6+
<body>
7+
<script>
8+
function solution(arr) {
9+
let answer = arr;
10+
11+
arr.sort((a, b) => {
12+
if (a[0] === b[0]) {
13+
return a[1] - b[1];
14+
}
15+
16+
return a[0] - b[0];
17+
});
18+
19+
return answer;
20+
}
21+
22+
let arr = [
23+
[2, 7],
24+
[1, 3],
25+
[1, 2],
26+
[2, 5],
27+
[3, 6],
28+
];
29+
console.log(solution(arr));
30+
</script>
31+
</body>
32+
</html>

섹션7/8.회의실 배정.html

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<html>
2+
<head>
3+
<meta charset="UTF-8" />
4+
<title>출력결과</title>
5+
</head>
6+
<body>
7+
<script>
8+
function solution(meeting) {
9+
let answer = 0;
10+
meeting.sort((a, b) => {
11+
if (a[1] === b[1]) return a[0] - b[0];
12+
else return a[1] - b[1];
13+
});
14+
15+
console.log(meeting);
16+
let et = 0;
17+
18+
for (let x of meeting) {
19+
if (x[0] >= et) {
20+
answer++;
21+
et = x[1];
22+
}
23+
}
24+
// let et = 0;
25+
// for (let x of meeting) {
26+
// if (x[0] >= et) {
27+
// answer++;
28+
// et = x[1];
29+
// }
30+
// }
31+
return answer;
32+
}
33+
34+
let arr = [
35+
[1, 4],
36+
[2, 3],
37+
[3, 5],
38+
[4, 6],
39+
[5, 7],
40+
];
41+
console.log(solution(arr));
42+
</script>
43+
</body>
44+
</html>

섹션7/9.결혼식.html

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<html>
2+
<head>
3+
<meta charset="UTF-8" />
4+
<title>출력결과</title>
5+
</head>
6+
<body>
7+
<script>
8+
function solution(times) {
9+
let answer = Number.MIN_SAFE_INTEGER;
10+
11+
let T_line = [];
12+
13+
for (let x of times) {
14+
T_line.push([x[0], 's']);
15+
T_line.push([x[1], 'e']);
16+
}
17+
18+
T_line.sort((a, b) => {
19+
if (a[0] === b[0]) {
20+
return a[1].charCodeAt() - b[1].charCodeAt();
21+
}
22+
23+
return a[0] - b[0];
24+
});
25+
26+
let cnt = 0;
27+
28+
for (let x of T_line) {
29+
if (x[1] === 's') {
30+
cnt++;
31+
} else {
32+
cnt--;
33+
}
34+
answer = Math.max(cnt, answer);
35+
}
36+
37+
return answer;
38+
}
39+
40+
let arr = [
41+
[14, 18],
42+
[12, 15],
43+
[15, 20],
44+
[20, 30],
45+
[5, 14],
46+
];
47+
console.log(solution(arr));
48+
</script>
49+
</body>
50+
</html>

0 commit comments

Comments
 (0)