목록Python/기본 (31)
코딩하는 해맑은 거북이
해당 글은 비트 연산자 5가지를 다룬다. 1. AND(&) 2. OR(|) 3. XOR(^) 4. NOT(~) 5. SHIFT() 0. 2진수 변환 → bin(정수) 파이썬에서 10진수를 2진수로 변환할 때는 bin 함수를 사용한다. print(0b1100) print(bin(12)) 12 0b1100 1. AND(&) 비트 단위로 AND 연산을 수행하는 연산자는 & 이다. AND 연산은 두 비트가 모두 1일 때 결과는 1, 그 외에는 0이 된다. A B A & B 0 0 0 0 1 0 1 0 0 1 1 1 print(0b1100 & 0b1010, bin(0b1100 & 0b1010)) 8 0b1000 2. OR(|) 비트 단위로 OR 연산을 수행하는 연산자는 | 이다. OR 연산은 두 비트 중 하나만 ..
해당 글은 아래의 2가지를 다룬다. 📌 all 함수 📌 any 함수 📌 all 함수 iterable한 객체의 모든 요소가 참(True)인지 확인하는 함수 만약, 모든 요소가 참(True)라면 True를 반환하고, 아니라면 False를 반환한다. list_A = [True, True, True] result_A = all(list_A) print(result_A) list_B = [True, True, False] result_B = all(list_B) print(result_B) list_C = [False, False, False] result_C = all(list_C) print(result_C) True False False 응용을 해보자면, 어떤 리스트에 특정 리스트에 포함된 값들이 모두 포함..
해당 글은 아래의 3가지를 다룬다. 📌 List 📌 collections.deque 📌 Dict 📌 List - 파이썬의 정렬 함수는 병합 정렬과 삽입 정렬의 아이디어를 더한 하이브리드 방식의 정렬 알고리즘을 사용하고 있다. 병합 정렬은 퀵 정렬보다 느리지만, 최악의 경우에도 O(nlogn)의 시간 복잡도를 보장한다는 특징이 있다. - List는 크기가 커질수록, 삽입과 삭제 연산이 비효율적으로 된다. 그럴 경우에는 deque를 사용하는 것이 효율적이다. cf) 코딩테스트 시 문제에 별도의 요구가 없다면, 기본 정렬 알고리즘을 사용하고 데이터의 범위가 한정되어 있고 더 빠르게 동작해야 할 때는 계수 정렬을 사용해야 한다. Operation 평균 (Average) 최악 (Worst) copy O(n) O(..
해당 글은 아래의 2가지를 다룬다. 📌 시간 복잡도 📌 공간 복잡도 📌 시간 복잡도 - 입력의 크기에 대해 알고리즘이 얼마나 오래 걸리는지를 의미한다. - 시간 복잡도를 표현할 때는 Big-O(빅오) 표기법을 사용한다. - 빅오 표기법에서는 상수와 작은 차수의 항을 제거하고, 차수가 가장 큰 항만 표기한다. - 시간 복잡도 표 빅오 표기법 명칭 O(1) 상수 시간(Constant Time) O(logN) 로그 시간(Logarithmic Time) O(N) 선형 시간(Linear Time) O(NlogN) 선형 로그 시간(Log-linear Time) O(\(N^2\)) 이차 시간(Quadratic Time) O(\(N^3\)) 삼차 시간(Cubic Time) O(\(2^N\)) 지수 시간(Exponent..
해당 글은 아래의 5가지를 다룬다. 📌 원주율(π) , 자연 상수(e) 📌 삼각함수 📌 삼각함수의 역함수 📌 지수 및 로그 함수 📌 제곱근 및 제곱 함수 📌 원주율(π) , 자연 상수(e) - math.pi : 원주율(π) 값 - math.e : 자연 상수(e) 값 import math print(math.pi) # 원주율 출력 print(math.e) # 자연 상수 출력 3.141592653589793 2.718281828459045 📌 삼각함수 - math.sin(x) : 각도 x의 사인 값 반환 - math.cos(x) : 각도 x의 코사인 값 반환 - math.tan(x) : 각도 x의 탄젠트 값 반환 angle = math.pi/4 print(math.sin(angle)) # 사인 값 출력 pr..
해당 글은 아래의 4가지를 다룬다. 🔷 1중 for 문 🔷 2중 for 문 🔷 for if 🔷 if-else for 🔷 1중 for 문 arr1 = list(range(1, 6)) # [1, 2, 3, 4, 5] arr2 = [] for i in arr1: arr2.append(i**2) arr3 = [i**2 for i in arr1] print(f'arr2 : {arr2}') print(f'arr3 : {arr3}') arr2 : [1, 4, 9, 16, 25] arr3 : [1, 4, 9, 16, 25] 🔷 2중 for 문 arr1 = list(range(1, 6)) # [1, 2, 3, 4, 5] arr2 = [] for i in arr1: for j in arr1: arr2.append(i*j)..