20250705 Logseq
This commit is contained in:
parent
f644b844fc
commit
975b835214
@ -419,4 +419,6 @@
|
||||
;; ;use triple underscore `___` for slash `/` in page title
|
||||
;; ;use Percent-encoding for other invalid characters
|
||||
:file/name-format :triple-lowbar
|
||||
:journal/page-title-format "yyyy-MM-dd EEEE"}
|
||||
:journal/page-title-format "yyyy-MM-dd EEEE"
|
||||
:feature/enable-journals? false
|
||||
:default-home {:page "📋 Index Page"}}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
deck:: Logseq/coding tip
|
||||
|
||||
- ## **Javascript / Typescript**
|
||||
- ### **이차원 배열(n*m) 생성**
|
||||
- ## **❖ Javascript / Typescript**
|
||||
- ### **► 이차원 배열(n*m) 생성**
|
||||
- id:: 6867f897-928a-4f22-8184-491fa70314db
|
||||
1. Array.from() 사용법 #card
|
||||
- ```javascript
|
||||
@ -23,12 +23,77 @@ deck:: Logseq/coding tip
|
||||
}
|
||||
}
|
||||
```
|
||||
- ## **Python**
|
||||
- ### **이차원 배열(n*m) 생성** #card
|
||||
- ### **► 배열 매서드**
|
||||
- ### **◼︎ Array.every((element, index, array) => {조건식})** #card
|
||||
id:: 686922a8-1c72-4261-8339-aff6ece36f03
|
||||
- **배열의 모든 요소가 조건식을 만족하는지 확인해서 true/false를 반환하는 매서드**
|
||||
- **elememt : 현재 요소, index : 현재 인덱스(생략가능), array : 원본 배열(생략 가능)**
|
||||
- **배열의 모든 요소가 특정 값인지 혹은 특정 범위에 있는지 확인하는 용도로 사용가능**
|
||||
- ```javascript
|
||||
const arr = [1,2,3,4,5,6,7,8,9,10];
|
||||
|
||||
arr.every((v,i) => v===i+1); // true
|
||||
arr.every((v,i,array) => {
|
||||
if(i<[array.length-1]){
|
||||
return array[i] < array[i+1];
|
||||
}
|
||||
else {
|
||||
return true;
|
||||
}
|
||||
}); // true
|
||||
arr.every(v => v===arr[0]); // false
|
||||
```
|
||||
- ### **◼︎ Array.slice(start_idx, end_idx)** #card
|
||||
id:: 68692600-551c-488b-ad74-de8145729133
|
||||
- **배열에서 특정 범위의 인덱스 부분만 잘라내서 그 배열을 반환하는 매서드**
|
||||
- **end_idx는 생략 가능하다**
|
||||
- 이 경우에는 start_idx 부터 끝까지 반환한다.
|
||||
- **배열의 start_idx 인덱스 부터 end_idx - 1 인덱스까지의 배열을 잘라내서 반환홤**
|
||||
- 예를 들면 arr.slice(2,7) 은 arr의 인덱스2 부터 인덱스 6까지의 배열을 반환함.
|
||||
- **범위를 초과해도 에러를 내지 않음. 그저 빈 배열을 반환할 뿐임.**
|
||||
- **아무리 호출해도 원본 배열 자체를 바꾸지는 않는다.**
|
||||
- ```javascript
|
||||
const arr = [0,1,2,3,4,5,6,7,8,9,10];
|
||||
|
||||
const arr1 = arr.slice(2); // [2,3,4,5,6,7,8,9,10]
|
||||
const arr2 = arr.slice(5,10); // [5,6,7,8,9]
|
||||
const arr3 = arr.slice(12); // []
|
||||
```
|
||||
- ### **◼︎ Array.forEach((element, index, array) => {})** #card
|
||||
id:: 6869280c-f685-44c4-b73e-a33f351be582
|
||||
- **배열의 모든 요소를 순서대로 순회하면서 코드를 실행하는 매서드**
|
||||
- **element(현재 요소)는 반드시 필요하고, index(현재 인덱스)와 array(원본 배열)는 생략 가능하다.**
|
||||
- **모든 배열을 순회하는 반복문과 비슷하게 사용이 가능하다**
|
||||
- 단 반복문에서 쓰이는 continue나 break는 사용할 수 없다.
|
||||
- return을 continue 처럼 사용할 수 있고, break는 사용할 수 없다.
|
||||
- 즉 break가 꼭 필요하다면 반복문으로 구현한다.
|
||||
- ```javascript
|
||||
const arr = [1,2,3,4,5];
|
||||
arr.forEach(v => {
|
||||
if(v===3) return;
|
||||
console.log(v);
|
||||
});
|
||||
// 1 2 4 5
|
||||
```
|
||||
- ### **◼︎ Array.reduce((acc, element, index) => {콜백함수}, initial value)** #card
|
||||
id:: 6869298b-18fd-4524-a697-c1af9e510c34
|
||||
- **배열의 각 요소별로 순회하며 누적자(acc)를 계산하고 모든 순회를 마친 뒤의 누적자를 반환하는 매서드**
|
||||
- **초기값을 입력하지 않으면 기본적으로 acc는 0으로 초기화 된 채 실행된다.**
|
||||
- **코드가 한줄이면 굳이 return으로 반환을 할 필요는 없으나 계산코드가 2줄 이상이면 누적값을 직접 return 해주어야 한다.**
|
||||
- ```javascript
|
||||
const arr = [1,2,3,4,5];
|
||||
const sum = arr.reduce((acc,v) => acc + v, 0); // 15
|
||||
const sum_odd = arr.reduce((acc,v) => {
|
||||
if(v%2===0) return acc;
|
||||
else return acc+v;
|
||||
},0); //9
|
||||
```
|
||||
- ## **❖ Python**
|
||||
- ### **► 이차원 배열(n*m) 생성** #card
|
||||
id:: 6867f994-13d0-4937-90e9-d8aec7be5d67
|
||||
- ```python
|
||||
arr = [[0]*m for _ in range(n)]
|
||||
```
|
||||
- ## **C**
|
||||
- ## **Java**
|
||||
- ## **프로그래밍 관련 이론 정리**
|
||||
- ## **❖ C**
|
||||
- ## **❖ Java**
|
||||
- ## **❖ 프로그래밍 관련 이론 정리**
|
||||
@ -1,126 +1,8 @@
|
||||
deck:: Logseq/coding tip
|
||||
|
||||
- ## **각 언어별 2차원 배열(n*m) 생성**
|
||||
- **Javascript**
|
||||
- id:: 684578c3-84af-4595-af7a-dc46f58bd99b
|
||||
1. 한줄로 선언하기(2가지 방법)
|
||||
- ```javascript
|
||||
const arr = Array.from({ length: n }, () => new Array(m).fill(0));
|
||||
|
||||
const arr = new Array(n).fill().map(() => new Array(m).fill(0));
|
||||
```
|
||||
- id:: 68457909-49bf-4cab-b5fc-c61081c0aa0c
|
||||
2. 반복문으로 중첩해서 생성하기
|
||||
- ```javascript
|
||||
let arr = [];
|
||||
for (let i = 0; i < n; i++) {
|
||||
arr[i] = [];
|
||||
for (let j = 0; j < m; j++) {
|
||||
arr[i][j] = 0;
|
||||
}
|
||||
}
|
||||
```
|
||||
- id:: 684577c9-7ecc-4ac9-a959-40f1d7593b1b
|
||||
3. 값이 정해져있는 경우
|
||||
- ```javascript
|
||||
const arr = [
|
||||
[1, 2, 3],
|
||||
[4, 5, 6],
|
||||
[7, 8, 9]
|
||||
];
|
||||
```
|
||||
- **python**
|
||||
- id:: 82ac6ae7-4155-407c-ac0a-78f00ed46c6a
|
||||
1. 한줄로 선언하기
|
||||
- ```python
|
||||
arr = [[0]*m for _ in range(n)]
|
||||
```
|
||||
-
|
||||
- ## **배열관련 팁 모음**
|
||||
- **Javascript**
|
||||
- **arr.every()**
|
||||
- **기본 정의**
|
||||
id:: 68500a89-08d4-48b2-aa6b-c465041f065b
|
||||
**배열의 모든 요소가 조건식을 만족하는지 확인해서 T/F를 반환하는 매서드**
|
||||
```javascript
|
||||
const arr = [1,2,3,4,5];
|
||||
arr.every((element, index, array) => {조건식});
|
||||
// element: 현재 요소
|
||||
// index: 현재 인덱스 (생략 가능)
|
||||
// array: 원본 배열 (생략 가능)
|
||||
```
|
||||
- **예제 : 배열의 모든 요소가 같은 값인지 확인하는 코드를 작성하시오.**
|
||||
id:: 68500afb-beda-428b-bab7-e2dceb371325
|
||||
collapsed:: true
|
||||
**예시 배열은 arr1 = [5,5,5], arr2 = [5,4,5] 로 선언해서 할 것!**
|
||||
- ```javascript
|
||||
const arr1 = [5, 5, 5];
|
||||
const arr2 = [5, 4, 5];
|
||||
|
||||
arr1.every(v => v===arr1[0]); // true
|
||||
arr2.every(v => v===arr2[0]); // false
|
||||
```
|
||||
-
|
||||
- **arr.slice()**
|
||||
- **기본 정의**
|
||||
id:: 68500c5b-9c05-4141-ab0c-3e179450bc03
|
||||
**배열의 입력한 인덱스부터 끝까지의 배열을 반환하는 매서드**
|
||||
**인덱스 범위를 초과해도 빈 배열을 반환하기 때문에 에러가 없음**
|
||||
```javascript
|
||||
const arr = [1,2,3,4,5];
|
||||
arr.slice(3); // [4,5]
|
||||
arr.slice(5); // []
|
||||
```
|
||||
-
|
||||
- **arr.forEach()**
|
||||
- **기본 정의**
|
||||
id:: 68500698-1dfa-4aff-9577-359f8fe63c99
|
||||
- ```javascript
|
||||
const arr = [1,2,3,4,5];
|
||||
arr.forEach((element, index, array) => {
|
||||
// element: 현재 요소
|
||||
// index: 현재 인덱스 (생략 가능)
|
||||
// array: 원본 배열 (생략 가능)
|
||||
// 위의 현재 요소 및 인덱스, 원본배열은 편한걸로 바꿔서 선언해도 됨.
|
||||
// 위에 지정한 것을 변수삼아서 for문 안의 코드를 작성하듯 콜백함수를 선언
|
||||
// 그러면 for문 처럼 각 요소들은 순회하며 코드를 실행함
|
||||
});
|
||||
```
|
||||
- **반복문 제어 함수인 break, continue 사용법**
|
||||
id:: 685007a1-6eab-4601-b002-6e0724e064d8
|
||||
- break는 사용 불가(꼭 필요하다면 그냥 for, while, do whlie을 쓸 것!)
|
||||
- continue는 return 으로 대체해서 사용함.(현재 인덱스에 대한 순회를 그즉시 끝내고 다음으로 넘어감)
|
||||
- 예제
|
||||
```javascript
|
||||
const arr = [1,2,3,4,5];
|
||||
arr.forEach(v => {
|
||||
if(v===3) return;
|
||||
console.log(v);
|
||||
});
|
||||
|
||||
// 출력(개행은 생략함)
|
||||
// 1 2 4 5
|
||||
```
|
||||
-
|
||||
- **arr.reduce()**
|
||||
- **기본 정의**
|
||||
id:: 685698f1-be84-4d2a-9440-256b6831989d
|
||||
- ```javascript
|
||||
// arr.reduce(<콜백함수>,<누적변수의 초기값>)
|
||||
arr.reduce((accumulator, currentValue, currentIndex, array)=> <함수코드>, <누적자의 초기값>)
|
||||
// accumulator: 이전 요소를 상대로 콜백 함수를 실행한 결과 (누적자)
|
||||
// currentValue: 현재 요소의 값
|
||||
// currentIndex: 현재 요소의 인덱스 (생략가능)
|
||||
// array: reduce() 메서드를 호출하는 배열 (생략가능)
|
||||
```
|
||||
- 배열의 각 요소별로 누적자를 계산하고 최종적으로 모든 요소를 순회한 뒤의 누적자를 리턴함.
|
||||
- **예시 (1-10까지의 합을 구하기)(1-10까지 배열을 한줄로 선언한 뒤 그 배열의 합을 구하는 방식으로)**
|
||||
id:: 68569a43-c4bc-4aaf-b07b-aeef8599a43f
|
||||
- ```javascript
|
||||
const arr = Array.from({length : 10}, (v,i)=> v=i+1);
|
||||
const sum = arr.reduce((acc, val) => acc + val, 0);
|
||||
console.log(sum); // 55
|
||||
```
|
||||
-
|
||||
- **arr.sort()**
|
||||
- arr의 데이터들을 오름차순으로 정리함.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user