7.5 KiB
7.5 KiB
deck:: Logseq/coding tip
-
❖ Javascript / Typescript
-
► 이차원 배열(n*m) 생성
- id:: 6867f897-928a-4f22-8184-491fa70314db
- Array.from() 사용법 #card
-
const arr = Array.from({length : n}, () => new Array(m).fill(0));
- id:: 6867f8fc-3249-4ced-91aa-a2c951c11b0b
2. Array().fill() 사용법 #card
-
const arr = new Array(n).fill().map(() => new Array(m).fill(0));
-
- id:: 6867f8fe-39c6-438b-a045-4f8687ad0b1d
3. 반복문 순회 #card
-
let arr = []; for(int i=0; i<n; i++){ arr[i] = []; for(int j=0; j<m; j++){ arr[i][j] = 0; } }
-
- id:: 6867f897-928a-4f22-8184-491fa70314db
-
► 배열 매서드
-
◼︎ Array.every((element, index, array) => {조건식}) #card
id:: 686922a8-1c72-4261-8339-aff6ece36f03- 배열의 모든 요소가 조건식을 만족하는지 확인해서 true/false를 반환하는 매서드
- elememt : 현재 요소, index : 현재 인덱스(생략가능), array : 원본 배열(생략 가능)
- 배열의 모든 요소가 특정 값인지 혹은 특정 범위에 있는지 확인하는 용도로 사용가능
-
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까지의 배열을 반환함.
- 범위를 초과해도 에러를 내지 않음. 그저 빈 배열을 반환할 뿐임.
- 아무리 호출해도 원본 배열 자체를 바꾸지는 않는다.
-
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가 꼭 필요하다면 반복문으로 구현한다.
-
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 해주어야 한다.
-
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
-
◼︎ Array.sort((a,b)=>{콜백함수}) #card
id:: 686a6dfd-328e-4dd0-bd8a-abbef2ae13ee- 배열을 정렬하는 매서드이고 기본적으로 파라미터를 입력하지 않으면 오름차순으로 정렬한다.
- 반환값은 없고 원본 배열 자체를 변경한다.
- 이 정렬 알고리즘은 배열의 데이터를 무조건 문자형으로 보고 정렬(사전순)하기 때문에 숫자를 정렬할 때는 이상하게 정렬이 될 수도 있다.
- [10,2,5,9,8,7] 을 오름차순 정렬하면 [2,5,7,8,9,10] 이 되어야 하지만 이걸 문자로 보고 정렬하기 때문에 실제로는 [10,2,5,7,8,9] 로 정렬된다.
- 숫자에 대해서 제대로 정렬하기 위해서는 콜백함수를 넣어줘야 한다.
- a와 b는 각각 인덱스 기준으로 보면 a가 b보다 앞선 인덱스에 있는 두 요소들을 의미한다.
- 이 두 요소 사이의 인덱스 간격은 신경쓰지 않는다. 그저 a가 앞에 있다는 것만 기억하자.
- 이때 이 a와 b의 관계식을 통해 콜백함수의 반환값을 설정해서 이 관계식이 모든 정렬이 끝난 뒤에 이 반환값이 모두 false가 되면 정렬이 완료된 것으로 취급한다.
- a와 b는 각각 인덱스 기준으로 보면 a가 b보다 앞선 인덱스에 있는 두 요소들을 의미한다.
- 예시
-
const arr = [5,9,7,4,3,2,8]; arr.sort((a,b)=>a-b); //[2,3,4,5,7,8,9] 오름차순 // 이전 인덱스 요소와 다음 인덱스 요소의 차이가 모두 양수가 아니게 되도록 정렬한다 arr.sort((a-b)=>b-a); //[9,8,7,5,4,3,2] 내림차순 // 이전 인덱스 요소와 다음 인덱스 요소의 차이가 모두 음수가 아니게 되도록 정렬한다
-
-
-
-
❖ Python
-
► 이차원 배열(n*m) 생성 #card
id:: 6867f994-13d0-4937-90e9-d8aec7be5d67-
arr = [[0]*m for _ in range(n)]
-
-
► 배열 관련 매서드
-
◼︎ arr.count(value) #card
id:: 686a721d-df2e-4662-a6dd-c235cce8c5ac- 리스트, 혹은 문자열에서 특정 값의 개수를 반환하는 매서드
-
string = "aaabbcccc" print(string.count('a')) # 3 print(string.count('b')) # 2 print(string.count('c')) # 4 arr = [1,2,2,3,3,3,4,4,4,4] print(arr.count(1)) # 1 print(arr.count(2)) # 2 print(arr.count(3)) # 3 print(arr.count(4)) # 4
-
◼︎ arr.sort() #card
id:: 686a726b-38e3-4adc-836a-2d0856046e73- 원본 배열 자체를 정렬하는 매서드.
- 기본값은 오름차순이고 파라미터에 reverse=True 를 하면 내림차순으로 정렬됨.
- 문자열에도 정렬이 가능함.
- 단 문자열이 문자들로 이뤄진 리스트로 바뀌게 됨으로 다시 문자열로 바꾸기 위해서는 join을 이용해서 합쳐줘야함.
-
arr = [5,8,2,4,9] arr.sort() # 2 4 5 8 9 arr.sort(reverse=True) # 9 8 5 4 2
-
◼︎ sorted(arr) #card
id:: 686a732c-734e-417c-b7e2-f3bfb8caa71b- 변수로 들어온 배열을 정렬한 뒤 그 결과를 반환하는 매서드, 즉 반환값이 배열임.
- 기본값은 오름차순이고 파라미터에 reverse=True 를 하면 내림차순으로 정렬됨. id:: 686a734e-b423-486f-8ec7-e5491e310fe0
-
arr = [5,8,2,4,9] arr1 = sorted(arr) arr2 = sorted(arr, reverse=True) print(arr1) :-> # 2 4 5 8 9 print(arr2) # 9 8 5 4 2
-
-
-
❖ C
-
❖ Java
-
❖ 프로그래밍 관련 이론 정리