deck:: Logseq/coding tip

- ## **각 언어별 2차원 배열(n*m) 생성**
	- **Javascript**
		- id:: 684578c3-84af-4595-af7a-dc46f58bd99b
		  1. 한줄로 선언하기(2가지 방법) #card
			- ```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. 반복문으로 중첩해서 생성하기 #card
			- ```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. 값이 정해져있는 경우 #card
			- ```javascript
			  const arr = [
			    [1, 2, 3],
			    [4, 5, 6],
			    [7, 8, 9]
			  ];
			  ```
	- **python**
		- id:: 82ac6ae7-4155-407c-ac0a-78f00ed46c6a
		  1. 한줄로 선언하기 #card
			- ```python
			  arr = [[0]*m for _ in range(n)]
			  ```
-
- ## **진수변환 알고리즘**
	- **B진수 숫자 N을 10진수로 바꾸는 법(누적곱 방식)** #card
	  id:: 68458948-9821-42c7-bb19-85d7c7ad4b8d
		- N의 왼쪽부터 한 자리씩 누적해서 곱하고 더하는 방식
		- 알고리즘
			- 최종결과 res를 0으로 초기화
			- 반복문을 통해 N의 왼쪽숫자부터 하나씩 순회함.
			- 순회하면서 읽은 값을 10진수로 바꾸고(A=10, B=11...) 그 값은 val에 저장.
			- res = res*B + val
			- 반복문을 모두 돌고 나면 최종적으로 res에 변환값이 들어가있음.
	- **10진수 숫자 N을 B진수로 바꾸는 법(나머지 계산법)** #card
	  id:: 68458b0d-5584-48bf-8bb4-aad6449b0193
		- N을 B로 계속 나누면서 그때마다 나머지값을 통해 변환하는 방식
		- 알고리즘
			- 최종 결과 문자열 res를 선언.
			- N이 0이 될 때까지 반복문을 순회함.
			- val에 N을 B로 나눈 나머지 값을 저장.
			- val값을 진법에 맞게 변환해서 res에 넣음.(앞에서 부터 넣는다)
			- N을 B로 나눈 몫으로 N을 재선언(N=N//B)
			- 위의 과정을 반복한 뒤 반복문을 빠져나오면 res에는 최종 변환결과가 역순으로 들어가있음.
-
- ## **소수점 올림 연산**
	- **ceil함수를 사용하지 않는 방법** #card
	  id:: 68494b21-76da-4013-a61a-8c8cd812e253
		- ```python
		  ceil(x/y) = (x+y-1)//y
		  ```
-
- ## **파이썬, 자바스크립트 반복문 순회 및 객체/딕셔너리 순회**
	- ### **► 일반적인 반복가능 객체를 활용한 반복문 순회(기본 순회)**
		- **● pythron** #card
		  id:: 684e9cfd-e828-43ac-9f6c-76492bdcf94a
			- ```python
			  arr = [1,2,3,4,5]
			  
			  for i in arr :
			  	print(i)
			    
			  # 출력
			  # 1 2 3 4 5
			  ```
		- **● javascript** #card
		  id:: 684e9d25-ddf8-4f7c-b781-21bb247497f8
			- ```javascript
			  const arr = [1,2,3,4,5];
			  
			  for(let i of arr) {
			  	console.log(i);
			  }
			    
			  // 출력
			  // 1 2 3 4 5
			  ```
	-
	- ### **► 자바스크립트의 객체(Object) 는 파이썬의 딕셔너리(Dictionary)**
		- **키(key)와 값(value)을 가지는 데이터의 집합(각각의 언어에서 서로 동일하다고 생각해도 무방함)**
		- **◎ 선언 및 접근방법**
			- **● pythron** #card
			  id:: 684e9fb3-3cf0-4fa0-8539-e53bfe7fbcc1
				- ```python
				  # 빈데이터 초기화 방법
				  dic = {} # dict()
				  
				  # 직접 선언 방법
				  dic = {
				  "name":  "Yechan",
				  "age" : 30
				  }
				  
				  # 출력
				  print(dic["name"])
				  print(dic["age"])
				  # Yechan
				  # 30
				  ```
			- **● javascript** #card
			  id:: 684ea0a5-0720-4a7b-a3b0-6fd81541ec05
				- ```javascript
				  // 빈데이터 초기화 방법
				  let obj = {};
				  
				  // 직접 선언 방법
				  let obj = {
				  "name":  "Yechan",
				  "age" : 30
				  };
				  
				  // 출력
				  console.log(obj.name);
				  console.log(obj["age"]);
				  // Yechan
				  // 30
				  // 두 방법 모두 사용 가능
				  ```
		- **◎ 키 및 값 순회(반복문 사용, 순서는 보장되지 않음)**
			- **● pythron** #card
			  id:: c506e90a-c84b-4498-ba5f-5028f5a874f6
				- ```python
				  dic = {
				  "name":  "Yechan",
				  "age" : 30
				  }
				  
				  # key 순회
				  for key in dic :
				  	print(dic[key])
				  # Yechan
				  # 30
				  
				  # key, value 순회
				  for key, value in dic.items() :
				  	print(key, value)
				  # name Yechan
				  # age 30
				  ```
			- **● javascript** #card
			  id:: f380d0d7-7826-4714-bb8c-c78cc601ca50
				- ```javascript
				  let obj = {
				  "name":  "Yechan",
				  "age" : 30
				  };
				  
				  // key 순회
				  for(let key in obj){
				    console.log(obj[key]);
				  }
				  // Yechan
				  // 30
				  
				  // key, value 순회
				  for [key, value] of Object.entries(obj) {
				  	console.log(key, value);
				  }
				  // name Yechan
				  // age 30
				  
				  for key of Object.keys(obj) {
				  	console.log(key, obj[key]);
				  }
				  // name Yechan
				  // age 30
				  ```
-
- ## **C언어 변수 타입별 메모리 할당크기 정리**
	- 테스트 #card
	  id:: 684ea7e1-e59d-47a5-971f-2114a17fdda7
		- id:: 684ea656-cac9-45ba-8dc4-5ade273c8777
		  |<b>원형</b>|<b>과거형</b>|<b>과거분사형</b>|
		  |:---:|:---:|:---:|
		  |<b> go</b>|<b>went </b>|<b>gone</b>|
		  |<b>begin</b>|<b>began</b>|<b>begun</b>|
		  |<b>choose</b>|<b>chose</b>|<b>chosen</b>|