조건문
score = 85
result = "Success" if score > 80 else "Fail"
전역변수
a = 0
def func():
global a
a += 1
for _ in range(10):
func()
print(a) # 10
입출력
1. 숫자
n = int(input()) # 1개 입력
data = list(map(int, input().split())) # 여러개 입력 -> 리스트 lms
n, m, k = map(int, input().split()) # 3개 입력 받았을 시
2. 문자열
import sys
data = sys.stdin.readline().rstrip() # ssr()r()
print(data)
자주 쓰는 내장함수
- import 명령어 없이 바로 사용가능
1. sum
result = sum([1,2,3,4,5])
2. min
result = min(7, 3, 5, 2)
3. max
result = max(7, 3, 5, 2)
4. eval : 수학수식(문자열형태) -> 결과 반환
result = eval("(3+5)*7")
5. sorted
result = sorted([9, 1, 8, 5, 4])
result = sorted([9, 1, 8, 5, 4], reverse=True)
순열, 조합 itertools
1. 모든 순열 구하기 : permutations
from itertools import permutations
data = ['A', 'B', 'C']
result = list(permutations(data, 3)) # [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C') ......]
2. 2개를 뽑는 모든 조합 : combinations
from itertools import combinations
data = ['A', 'B', 'C']
result = list(combinations(data, 2)) # [('A', 'B'), ('A', 'C'), ('B', 'C')]
3. 2개를 뽑는 모든 순열 구하기(중복허용) : product
from itertools import product
data = ['A', 'B', 'C']
result = list(product(data, repeat=2)) # [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'B'), ('B', 'C')..............]
힙 heapq : O(NlogN)
1. 오름차순
import heapq
# O(NlogN)
def heapsort(iterable):
h = []
result = []
# 1. iterable -> h
for value in iterable:
heapq.heappush(h, value)
# h -> result
for i in range(len(h)):
result.append(heapq.heappop(h))
return result
result = heapsort([1,3,5,7,9,2,4,6,8,0])
print(result)
2. 내림차순
import heapq
# O(NlogN)
def heapsort(iterable):
h = []
result = []
# 1. iterable -> h
for value in iterable:
heapq.heappush(h, -value)
# h -> result
for i in range(len(h)):
result.append(-heapq.heappop(h))
return result
result = heapsort([1,3,5,7,9,2,4,6,8,0])
print(result)
특정 수 찾기 O(logN)
이진탐색 : 정렬된 배열에서 찾기 bisect
from bisect import bisect_left, bisect_right
a = [1, 2, 4, 4, 8]
x = 4
print(bisect_left(a,x)) # 2
print(bisect_right(a,x)) # 4
deque
- 리스트보다 빠르다.
리스트의 원소 추가 : O(N)
deque의 원소 추가 : O(1)
from collections import deque
data = deque([2, 3, 4])
data.appendleft(1)
data.append(5)
print(data) # deque([1, 2, 3, 4, 5])
print(list(data)) # [1, 2, 3, 4, 5]
Counter
- 리스트 원소의 갯수를 세어줌
from collections import Counter
counter = Counter(['red', 'red', 'green', 'blue', 'blue', 'blue'])
print(counter['blue']) # 3
print(dict(counter)) # {'red': 2, 'green': 1, 'blue': 3}
math
1. factorial
2. sqrt : 제곱근
3. gcd : 최대공약수
4. pi, e
import math
print(math.factorial(5)) # 1
print(math.sqrt(9)) # 2
print(math.gcd(9, 15)) # 3
print(math.pi) # 4
print(math.e)
'공부 > Python' 카테고리의 다른 글
sys.stdin.readline().rstrip() (0) | 2021.04.10 |
---|---|
DFS (0) | 2021.04.09 |
lambda 정렬 (0) | 2021.04.08 |
str 'a' -> int형 97 (0) | 2021.03.31 |
파이썬 복습 1 (0) | 2021.03.30 |
댓글