https://ko.khanacademy.org/computing/computer-programming/sql/sql-basics/pt/aggregating-data 집계함수의 사용 CREATE TABLE groceries (id INTEGER PRIMARY KEY, name TEXT, quantity INTEGER, aisle INTEGER); INSERT INTO groceries VALUES (1, "Bananas", 4, 7); INSERT INTO groceries VALUES(2, "Peanut Butter", 1, 2); INSERT INTO groceries VALUES(3, "Dark Chocolate Bars", 2, 2); INSERT INTO groceries VALUES(4, "I..
https://ko.khanacademy.org/computing/computer-programming/sql/sql-basics/pt/querying-the-table CREATE TABLE groceries (id INTEGER PRIMARY KEY, name TEXT, quantity INTEGER, aisle INTEGER); INSERT INTO groceries VALUES (1, "Bananas", 4, 7); INSERT INTO groceries VALUES(2, "Peanut Butter", 1, 2); INSERT INTO groceries VALUES(3, "Dark Chocolate Bars", 2, 2); INSERT INTO groceries VALUES(4, "Ice crea..
https://ko.khanacademy.org/computing/computer-programming/sql/sql-basics/pt/creating-a-table-and-inserting-data 테이블 만들기 쇼핑 리스트를 테이블로 만든다고 하자. /** Grocery list: Bnanans (4) Peanut Butter (1) Dark Chocloate Bars (2) **/ 테이블을 만들 때는 CREATE TABLE을 쓴다. CREATE TABLE 이름 (컬럼명 데이터 타입) CREATE TABLE groceries ( ); #에러가 뜬다. 왜냐하면 괄호 한에 열 이름을 적어줘야 하기 때문. 컬럼명에는 각 아이템을 묶어 설명해줄 수 있는 속성을 넣는다. 그리고 그 옆에는 데이터 타입도 같이 ..
배열은 1차원도, 2차원도, 3차원도 메모리에 할당될 때는 메모리가 1차원이므로 메모리에 연속 할당된다. 1차원 배열은 낮은 주소에서 높은 주소로 연이어서 할당된다. 2차원 배열은 1행이 낮은 주소에서 높은 주소로 연이어서 할당된 후, 2행이 낮은 주소에서 높은 주소로 할당된다. 배열의 효율성 배열은 메모리에 임의 접근할 수 있으므로(메모리 특성상 주소를 특정해서 접근할 수 있으므로) 접근에는 시간 복잡도가 O(1)이다. 데이터의 추가, 삭제에는 어디에 있느냐에 따라 다르다. 맨 뒤에 추가할 때는 빈 자리에 그냥 넣으면 되므로 O(1). 그러나 맨 앞에 삽입하려면, 다른 녀석들을 한칸씩 뒤로 옮겨야 하므로 O(n)이 된다. 따라서 append(),pop() 연산은 O(1), pop(0) 연산은 O(n)이..
Early return 함수를 정의했을 때, 함수 끝까지 도달하기 전에 반환한다. def k(a,b): v = a/b if v > 200: #조건에 해당한다면 return v #조기 반환한다. return v 단점 : 함수의 반환이 여러 곳으로 흩어지게 되어 함수의 복잡도를 높이고 가독성을 떨어뜨릴 수 있는 가능성이 존재한다. Gaurd clauses 본문의 로직을 진행하기 전에 예외처리 코드들을 추가 조건문으로 검사하고 함수 종료 def k(a,b): v = a/b if v > 200: #조건에 해당한다면 return None #종료한다. if v ==list: #조건에 해당한다면 return None #종료한다. return v 예외를 줄일 수 있으므로 좋다. Composite method 2개 이상..
시간 복잡도는 알고리즘의 성능을 나타내는 지표다. 해당 알고리즘을 실행시켰을 때, 연산 횟수에 대한 worst case적인 한계를 의미한다. 시간 복잡도는 낮으면 낮을 수록 좋다. 빅 O 표기법을 통해 알 수 있으며, 현대 컴퓨터에서 대략적으로 1초 연산이 최대 1억번의 연산 횟수를 가진다는 걸 머릿속에 넣어 놓으면 좋다. 이를 통해 우리는 조건이 1초, 1만개가 들어가는 테스트 케이스 범위가 주어졌을 때, O(n^2)은 쓰지 못한다는 걸 직감적으로 알 수 있게 된다. 시간을 측정하려면 절대 시간을 측정하는 방법도 있으나, 그런 방법은 코딩 테스트에서는 잘 활용되지 않는다. 빅오 표기법 1차원 배열에서 가장 값을 늦게 찾는 경우는 리스트의 끝까지 검색했을 때 혹은 값을 못찾았을 때. 즉, O(n)이다. ..