일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- dp
- 리눅스
- 동적 프로그래밍
- AI
- google coding competition
- CSS
- 동적프로그래밍
- 운영체제
- 백준
- 브루트포스
- 코딩 테스트
- nlp
- linux
- 코딩
- 딥러닝
- OS
- PYTHON
- 킥스타트
- 프로그래머스
- 프로그래밍
- 알고리즘
- 순열
- 구글 킥스타트
- 그래프
- DFS
- kick start
- 네트워크
- 코딩테스트
- BFS
- 파이썬
- Today
- Total
목록list (5)
오뚝이개발자
list와 tuple은 모두 순차자료형이다. A = [1, 2, 3]# list B = (1, 2, 3)# tuple 하지만 차이점은 리스트의 경우 원소를 바꿀 수 있으나(가변적), 튜플의 경우 원소의 값을 변경할 수 없다(불변적)는 점이다. 이 같은 차이가 왜 중요한 이유가 있다. 만약 아래와 같이 "리스트"를 key로 하는 딕셔너리를 만들고 싶다고 해보자. A = [1,2,3] B = [4,5,6] dictionary = {} dictionary[A] = 1 dictionary[B] = 2 안타깝지만, 위의 코드는 제대로 실행되지 않는다. 아마 실행해보면 TypeError: unhashable type: 'list'라는 에러 문구가 뜰 것이다. 이유는 파이썬에서 딕셔너리의 key값은 hash가 가능토..

시간복잡도 아래는 자주 등장하는 시간복잡도 표기들이다. 표에서 아래로 갈수록 수행시간이 오래 걸린다. list 리스트는 배열이다. 그렇기 때문에 사이즈가 커질수록 삽입과 삭제 연산이 비효율적으로 된다. 이럴 땐 차라리 deque를 쓰는 것이 효율적이다. Operation Average Worst Copy O(n) O(n) Append O(1) O(1) Pop last O(1) O(1) Pop intermediate O(k) O(k) Get item O(1) O(1) Set item O(1) O(1) Delete item O(n) O(n) sort O(nlogn) O(nlogn) min,max O(n) O(n) len O(1) O(1) collections.deque deque(double ended qu..
파이썬에는 in 연산자가 있다. 보통 리스트, 튜플, 집합, 딕셔너리 같이 연속적인 자료구조에 속한 멤버를 확인하거나 순회할 때 사용한다. 그렇다면 in 연산자의 시간복잡도는 어떻게 될까? List l = [1, 2, 3, 4, 5] # 멤버 확인 if 1 in l : print("1 is in l") # 순회 for i in l : print(i) Tuple t = (1, 2, 3, 4, 5) # 멤버 확인 if 1 in t : print("1 is in t") # 순회 for i in t : print(i) Set s = {1, 2, 3, 4, 5} # 멤버 확인 if 1 in s : print("1 is in s") # 순회 for i in s : print(i) Dictionary d = {1: ..
파이썬을 사용하면서 공백으로 구분되지 않은 문자열을 입력으로 받을 때가 있다. 이 때 각 문자열을 리스트의 한 원소로 넣고 싶을 때가 있다. 가령 "110"을 ['1', '1', '0']으로 넣고자 할 때가 그러하다. 이런 경우 list()함수를 사용해주면 된다. >>>string = "110" >>>list(string) ['1', '1', '0'] input으로 입력받은 string을 int로 변환시켜 위와 같이 넣고 싶을 때는 map함수를 사용해주면 된다. n = list(map(int, list(input()))) print(n) 위 코드의 input으로 110을 넣어주면 결과로 ['1', '1', '0']이 아닌 [1,1,0]이 나오게 된다.
문제 https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 생각의 흐름 문제가 꽤나 직관적이다. 그냥 시키는 대로 분기를 시켜 짜면 된다. 출제의도는 아마 set을 사용하는 방법을 익히도록 하려던 것 같다. 깨달은 점 set에는 list와는 다른 점들이 몇 가지 존재한다. 코드 상에서 사용된 부분들에 대해서만 소개하고자 한다. set에는 중복이 없다. 즉, temp = [1,2,3,3]이라는 list를 temp = set(temp)를 하고나면 [1,2,3]이 된다. 하지만 순서도 없다..