- Back Tracking
- Brute Force
- BINARY_SEARCH
- DFS/BFS
- Divide and Conquer
- Dynamic Programming
- Function
- Floyd-Warshell
- Greedy
- Graph
- Mathematics 1
- Hash&Binary Search&Heap
- MST
- Recursion
- Simulation
- Sort
- IF/For/While
- String
- Tree
Size of N | Maximum Time Complexity |
---|---|
N ≤ 11 | O(N!) |
N ≤ 25 | O(2N) |
N ≤ 100 | O(N4) |
N ≤ 500 | O(N3) |
N ≤ 3,000 | O(N2logN) |
N ≤ 5,000 | O(N2) |
N ≤ 1,000,000 | O(NlogN) |
N ≤ 10,000,000 | O(N) |
10,000,000~ | O(logN), O(1) |
while True:
try:
a, b = map(int, input().split())
print(a+b)
except:
break
import sys
for line in sys.stdin:
a, b = map(int, line.split())
print(a + b)
X = dict()
if not X[i]: # KeyError
if X.get(i): # OK
- 투 포인터 알고리즘 시도해보기
- 이분 탐색 시도해보기(binary search)
- dp(Dynamic programming) 시도해보기
- 그리디(Greedy) 시도해보기
# 일반 함수
def ten(x):
return x+10
ten(1) # 11
# lambda 함수
ten = lambda x: x+10
ten(1) # 11
- 일반 함수를 한 줄로 짧게 쓸 수 있다.
-
result라는 dictionary가 있다고 가정해보자.
sorted(result, key=lambda x:result[x], reverse=True)
- result는 [result의 키]로 이루어진 리스트 형태이다.
- 키값을 하나씩 꺼낸 것이 x이다.
- result[x]는 결국 키가 x인 딕셔너리의 값이다. 즉, '값'을 기준으로 거꾸로 정렬한다는 의미이다
- 대신 결과값으로는 키 값만 다시 되돌아온다. 1번에서 키로 주어졌기 때문이다.
-
같은 결과를 가지는 코드는 아래와 같다.
sorted(result.items(), key=lambda x:result[x[0]], reverse=True)