일급 객체(First-class citizen)란? OOP (Object Oriented Programming) 에서 사용되는 개념으로, 아래와 같은 몇가지 조건을 만족하는 개념 변수나 데이터 구조 안에 담을 수 있음 매개변수로 전달이 가능함 리턴값으로 사용 될 수 있음 일반적으로 생각 할 때 int, char 등의 데이터형이 이 일급 객체에 속하고, 만약 함수가 일급 객체로 쓰일 수 있다면, 그 언어는 일급 함수를 지원한다고 함. Python에서는 일급 함수를 지원함. def func1 (param1, param2) : local_var = "123" def local_fun () : print(local_var) param1() return local_fun def first_fun () : prin..
빅오 표기법 (Big - O Notation) 입력값의 변화에 따라서 연산을 진행 할 때 연산 횟수에 따라 수행시간이 얼마나 걸리는가? 입력으로 들어오는 데이터의 수를 변수로 놓았을 때 알고리즘 내부적으로 수행되는 연산의 총 합을 계산식으로 표현 상수는 없애고 가장 차수가 높은 항을 택함 빅오메가 (알고리즘 수행시간의 최선의 경우), 빅세타 (알고리즘 수행시간의 평균적인 경우) 등도 있음 O(1) 일 때 시간복잡도가 데이터의 input량에 따라 달라지지 않는 경우에 해당함 연산 횟수가 100이 되든, 100만이 되든 상관없이 그 연산이 데이터 수 N에 따라 달라지지 않으면 1로 봄 대표적으로 해시테이블이 있다, key-value 쌍으로 연결되어 바로 데이터를 불러오고 삽입 할 수 있기 때문 또한 arra..
트랜잭션의 의미 트랜잭션의 영어 단어는 transaction [거래, 매매, 처리, 과정] (https://en.dict.naver.com/#/entry/enko/6057b38e242c4b05969fcb2d3a8bfc04) 임 데이터베이스에서의 transaction도 또한 유사한 의미로 하나의 처리의 단위로서 하나의 논리적 기능을 처리하는 단위임 병행처리 또는 회복 recovery 작업시에 ACID의 네가지 원칙을 유지해야함 commit 되거나, rollback 되는 것 트랜잭션에서 ACID의 의미 Atomicity (원자성) 트랜잭션의 연산은 단일 단위로써 DB에 모두 한꺼번에 반영 되던지 안되던지 해야함 단일 트랜잭션 내 내부 작업 중 하나의 오류라도 있으면 해당 트랜잭션이 전부 취소되어야 함 Con..
일반적으로 알려진 RDBMS (Relational DataBase Management System) 와 대비되는 용어로 많이 사용 되고 있으며, No SQL 또는 Not Only SQL, Non-Relational Operational Database SQL 등으로 다양하게 해석이 되고 있으나 대체로 Not Only SQL로 많이 해석 되고 있음. 다시 말하면 기존 RDBMS에서 제공하는 기능은 물론, 부가적인 기능들도 제공한다는 것을 의미함. 1998년 카를로 스트로치(Carlo Strozzi)라는 엔지니어가 공개한 표준 SQL을 따르지 않는 자신만의 Open Source RDB를 NoSQL로 명명한데서 유래 했다고 함. 2009년에 요한 오스칼손(Johan Oskarsson)이라는 엔지니어가 Open..
CS 일반 상식 함수형 프로그래밍이란? SVN, Git, Github TDD의 의미 장단점 RESTful 의 의미 객체지향 OOP vs 절차지향 PP 클린코드에 대해 메모리 구조 (heap, stack, data, code) Framework와 Library의 차이점 Docker와 Kubernetes AWS에 대해 Overload vs Override JIT vs AOT 자료구조 배열, 리스트 (Array, List) 연결리스트, 환형 연결리스트 (Linked List, Circular Linked List) 스택, 큐 (Stack, Queue) 맵, 셋 (Map, Set) 힙 구조 (Heap, Maxheap, Minheap) 그래프 자료 구조 (Graph) 트리 (Tree) 해시 (Hash) 미완성 이..
이번 문제는 DP 문제. 여러번의 시도 끝에 코드를 완성했다. 결국은 점화식에 대한 이해를 통해 이 문제를 풀 수 있었다. import sys if __name__ == "__main__" : # 데이터를 잘 받자! N = int(sys.stdin.readline().strip()) C = [int(v) for v in sys.stdin.readline().strip().split()] # print(C) ppc = [C[i]/(i+1) for i in range(0, len(C))] # print(ppc) sortids = sorted(range(len(ppc)), key=lambda i : -ppc[i]) # print(sortids) price = 0 ccount = 0 sid = 0 while T..
이번 문제에서 물어보는 것은 세가지이다. 얼마나 불필요한 코드를 잘 제거하는지 에라토스테네스의 채를 알고 있고 구현 할 수 있는지 게다가 시간제한이 꽤나 까다롭다 거두절미하고 바로 코드로 들어가자 """ 백준 6588 골드바흐의 추측 """ import sys def is_prime (num) : if num < 2 : return False for i in range(2, num) : if num%i == 0 : return False return True if __name__ == "__main__" : while True : # 데이터를 잘 받자! num = int(sys.stdin.readline().strip()) if num == 0 : break primes_odd = [] for i in ..
이번 문제는 프로그래머스의 코딩테스트 연습에 있는 문제 중, DFS/BFS 문제이다. 하지만 문제를 보자마자 DFS/BFS는 안 떠오르고 자꾸 다른 방법으로 풀 수 있을 것만 같았다. 찾아보니 내 방식은 Union-Find 방식에 가까웠다. 한참을 고생 한 끝에 문제를 풀었고 그 코드는 아래에 있다. 그리고 애초에 의도했던 dfs, bfs도 공부하기 위해 해당 방법으로도 구현을 해보았다. def solution(n, computers): networks = [-1] * n netcount = 0 for ii in range(n**2) : i, j = ii//n, ii%n # print(i, j) if computers[i][j] == 1 : tmpj, tmpi = networks[j], networks[..
- Total
- Today
- Yesterday
- 백준10828
- computer science
- 기술면접질문
- 카드구매하기
- 백준
- heap
- Process vs Thread
- Memory
- Stack
- dynamic programming
- 코딩연습
- operation System
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
