λ¬Έμ 1) 1λΆν° 10,000κΉμ§ 8μ΄λΌλ μ«μκ° μ΄ λͺλ² λμ€λκ°?
8μ΄ ν¬ν¨λμ΄ μλ μ«μμ κ°―μλ₯Ό μΉ΄μ΄ν νλ κ²μ΄ μλλΌ 8μ΄λΌλ μ«μλ₯Ό λͺ¨λ μΉ΄μ΄ν ν΄μΌ νλ€.
μλ₯Ό λ€μ΄ 8808μ 3, 8888μ 4λ‘ μΉ΄μ΄ν ν΄μΌ ν¨
https://codingdojang.com/scode/393?answer_mode=hide
// λ¬Έμ νμ΄
// λΉ λ°°μ΄ λ§λλ λ°©λ²
Array(10);
let x = Array(10);
x[2] = undefined;
x[3] = null;
x;
// [λΉμ΄μμ x 2, undefined, null, λΉμ΄μμ x 6]
x.length = 20;
x;
// [λΉμ΄μμ x 2, undefined, null, λΉμ΄μμ x 16]
Array(10).fill(0);
Array(10).fill(10);
// Array(100).fill().map((_, i) => i + 1)
// [...Array(100)].map((_, i) => i + 1)
Array(100)
.fill(1)
.map((val, idx) => val + idx);
".".repeat(10);
".".repeat(10).split("."); // lenght : 11
".".repeat(9).split("."); // lenght : 10
Array.from("abc");
Array.from("a", repeat(10));
Array.from("ab", repeat(10));
Array(100)
.fill(1)
.map((val, idx) => val + idx) + "";
(
Array(100)
.fill(1)
.map((val, idx) => val + idx) + ""
).split("8").length - 1;
// 8μ΄ 1κ°μΈ κ²½μ° 8μ κΈ°μ€μΌλ‘ λλλ©΄μ λ°°μ΄μ΄ 2κ°λ‘ μͺΌκ°μ§ => length - 1μ νλ μ΄μ
λ¬Έμ 2) 1μ°¨μμ μ λ€μ΄ μ£Όμ΄μ‘μ λ, κ·Έ μ€ κ°μ₯ κ±°λ¦¬κ° μ§§μ κ²μ μμ μΆλ ₯νλ ν¨μλ₯Ό μμ±νμμ€. (λ¨ μ λ€μ λ°°μ΄μ λͺ¨λ μ λ ¬λμ΄μλ€κ³ κ°μ νλ€.)
μλ₯Ό λ€μ΄ S={1, 3, 4, 8, 13, 17, 20} μ΄ μ£Όμ΄μ‘λ€λ©΄, κ²°κ³Όκ°μ (3, 4)κ° λ κ²μ΄λ€.
https://codingdojang.com/scode/408?langby=javascript#answer-filter-area
let s = [1, 3, 4, 8, 13, 17, 20];
let arr = new Array();
// for (let i = 0; i < s.length - 1; i++) {
// console.log(s[i + 1] - s[i]);
// }
// μμ λμΌν μ½λ
for (let i = 1; i < s.length; i++) {
// console.log(s[i] - s[i - 1]);
arr.push(s[i] - s[i - 1]);
}
// arr.indexOf(5)
let result = arr.indexOf(Math.min(...arr));
console.log(s[result], s[result + 1]);
// λ€λ₯Έ νμ΄
let s = [1, 3, 4, 8, 13, 17, 20];
// let ss = [3, 4, 8, 13, 17, 20];
// const zip = (a, b) => a.map((v, i) => [v, b[i]]);
const zip = (a, b) => a.map((val, idx) => [val, b[idx]]);
// zip(s.slice(), s.slice(1)).slice(0, -1);
// zip(s.slice(0, s.length - 1), s.slice(1));
let pairs = zip(s.slice(), s.slice(1)).slice(0, -1);
// -1 μμ μ μ§
// 1 μμ λ°κΏ
// μ€λ¦μ°¨μ μ λ ¬ :
// λ€μ κ°μ΄ λ ν¬λ©΄ μμ μ μ§
// λ€μ κ°μ΄ μμΌλ©΄ μμ λ°κΏ
function compare(a, b) {
if (a[1] - a[0] < b[1] - b[0]) {
return -1;
}
if (a[1] - a[0] > b[1] - b[0]) {
return 1;
}
return 0;
}
pairs.sort(compare);
pairs.sort(compare)[0];
// μ¬μ΄ νμ΄
let s = [1, 3, 4, 8, 13, 17, 20];
const zip = (a, b) => a.map((val, idx) => [val, b[idx]]);
let pairs = zip(s.slice(0, s.length - 1), s.slice(1));
// μ΄κΈ°κ°, forλ¬Έ μμμλ μ΅μκ°μ λΉκ΅νλ μ©λλ‘ μ¬μ©
// MAX_SAFE_INTEGERλ₯Ό μ£Όλ‘ μ¬μ©
// let init = Number.MAX_SAFE_INTEGER;
// let init = Number.MIN_SAFE_INTEGER;
let init = pairs[0][1] - [0][0];
// resultλ μ΅μ’
κ²°κ³Όκ°
let result = [];
for (let i of pairs) {
// console.log(i);
if (init > i[1] - i[0]) {
init = i[1] - i[0];
result = i;
}
}
console.log(result);
class Stack {
constructor() {
this.arr = [];
}
push(data) {
this.arr.push(data);
}
pop(index = this.arr.length - 1) {
// indexκ° μμ κ²½μ°
if (index === this.arr.length - 1) {
return this.arr.pop();
}
// indexκ° μμκ²½μ°
// let result = this.arr[index];
// this.arr = [...this.arr.slice(0, index), ...this.arr.slice(index + 1)];
let result = this.arr.splice(index, 1);
return result;
}
empty() {
if (arr.length === 0) {
return true;
} else {
return false;
}
}
top() {
return this.arr[this.arr.length - 1];
}
bottom() {
return this.arr[0];
}
}
let s = new Stack();
s.push(10);
s.push(20);
s.push(30);
s.push(100);
s.push(200);
s.push(300);
s.pop();
console.log(s);
s.pop(2);
console.log(s);
const list = {
head: {
value: 90,
next: {
value: 2,
next: {
value: 77,
next: {
value: 35,
next: null, // λ§μ§λ§ κ°μ nullμ κ°λ¦¬ν¨λ€
},
},
},
},
};
class Node {
constructor(data) {
this.data = data;
this.next = null;
}
}
class LinkedList {
constructor() {
let init = new Node("init");
this.head = init;
this.tail = init;
this.νμ¬λ
Έλ = undefined;
this.λ°μ΄ν°μ = 0;
}
length() {
return this.λ°μ΄ν°μ;
}
append(data) {
let μλ‘μ΄λ
Έλ = new Node(data);
// λ§μ§λ§ κ°μ΄ nullμμ μλ‘μ΄ λ
Έλκ° λ¨
this.tail.next = μλ‘μ΄λ
Έλ;
// λ§μ§λ§ λ
Έλλ μλ‘μ΄ λ
Έλκ° λ¨
this.tail = μλ‘μ΄λ
Έλ;
this.λ°μ΄ν°μ += 1;
}
toString() {
let μνμ©νμ¬λ
Έλ = this.head;
μνμ©νμ¬λ
Έλ = μνμ©νμ¬λ
Έλ.next;
let s = "";
for (let i = 0; i < this.λ°μ΄ν°μ; i++) {
s += `${μνμ©νμ¬λ
Έλ.data},`;
μνμ©νμ¬λ
Έλ = μνμ©νμ¬λ
Έλ.next;
}
// 맨 λ§μ§λ§μ μ½€λ§μ λμ΄μ°κΈ°κ° μμΌλ―λ‘ -1 μμ±
return s.slice(0, -1);
}
get fullData() {
let μνμ©νμ¬λ
Έλ = this.head;
μνμ©νμ¬λ
Έλ = μνμ©νμ¬λ
Έλ.next;
let s = "";
for (let i = 0; i < this.λ°μ΄ν°μ; i++) {
s += `${μνμ©νμ¬λ
Έλ.data},`;
μνμ©νμ¬λ
Έλ = μνμ©νμ¬λ
Έλ.next;
}
return JSON.parse(`[${s.slice(0, -1)}]`);
}
}
// console
l = new LinkedList();
l.append(1);
l.append(2);
l.append(3);
l.append(10);
l.append(20);
l.append(30);
l.length();