일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- HTML
- dbeaver
- Oracle
- Algorithm
- Oracle VM VirtualBox
- RFP
- 파이썬 알고리즘
- Python 라이브러리
- 파이썬 데이터프레임
- C#
- tibero
- it 용어
- linux
- it용어
- 오라클
- 데이터베이스
- Python DataFrame
- 리눅스
- python algorithm
- sql
- csharp
- 알고리즘
- 리눅스 명령어
- 파이썬
- 파이썬 전처리
- VirtualBox
- 코딩테스트
- PYTHON
- putty
- MariaDB
- Today
- Total
목록알고리즘 (10)
오경석의 개발노트

개요 MD5(message digest 5)는 입력 데이터로부터 128 비트(bit) 메시지 축약을 만듦으로써 데이터 무결성을 검증하는데 사용되는 해시 알고리즘이다. 1991년 미국 MIT의 교수 로날드 리베스트(Ronald Rivest)가 이전 버전인 MD4의 결함을 보완하기 위해 개발했다. 현재는 주로 프로그램이나 파일이 원본 그대로인지 확인하는 무결성 검사 등에 사용된다. MD5는 전자서명, 응용 프로그램 등 정보보호를 목적으로 개발한 해시 알고리즘이다. 프로그램이 위변조 되었는지를 확인하는 무결성 검사에 사용된다. 입력받은 메시지를 128비트로 압축하는 방식이며, 이전 버전으로는 MD2, MD4가 있다. 1996년 보안상 결함이 발견되어 보안용으로 사용하는 것은 권장하지 않는다. 큰 파일들은 RS..

개요 SHA-256은 SHA(Secure Hash Algorithm) 알고리즘의 한 종류로서 256비트로 구성되며 64자리 문자열을 반환한다. SHA-256은 미국의 국립표준기술연구소(NIST; National Institute of Standards and Technology)에 의해 공표된 표준 해시 알고리즘은 SHA-2 계열 중 하나이며 블록체인에서 가장 많이 채택하여 사용하고 있다. 이름에 내포되어 있듯 \(2^{256}\)만큼 경우의 수를 만들 수 있다. 개인용 컴퓨터로 무차별 대입을 수행해 해시 충돌 사례를 찾으려고 할 때 많은 시간이 소요될 정도로 큰 숫자이므로 비교적 안전하다고 평가된다. SHA-256 해시 함수는 어떤 길이의 값을 입력하더라도 256비트의 고정된 결과값을 출력한다. 일반적..

# factorial_algorithm_1, 계산복잡도 : O(n) def factorial(n): result = 1 for i in range(2, n + 1): result *= i return result # factorial_algorithm_2, 계산복잡도 : O(n) def factorial2(n): if n 1 else 1

# algorithm_1, 계산복잡도 : O(n) def min_list(n): for i in range(len(n)): if n[0] > n[i]: n[0] = n[i] return n[0] # algorithm_2, 계산복잡도 : O(1) min(my_list)

# find_max_of_list_algorithm_1, 계산복잡도 : O(n) def max_list(n): for i in range(len(n)): if n[0] a[n - 1]: return max_a else: return a[n - 1] # algorithm_2, 계산복잡도 : O(1) max(my_list)

# algorithm_1, 계산복잡도 : O(n) def find_max_idx(n): max_idx = 0 for i in range(len(n)): if n[0] < n[i]: n[0] = n[i] max_idx = i return max_idx

# algorithm_1, 계산복잡도 : O(n) def squared1(n): result = 0 for i in range(1, n + 1): result += i * i return result # algorithm_2, 계산복잡도 : O(1) def squared_2(n): return n * (n + 1) * (2 * n + 1) // 6

계산 복잡도 : 어떤 알고리즘이 문제를 풀기 위해 해야 하는 계산이 얼마나 복잡한지 나타낸 정도 계산 복잡도를 표현하는 방법에는 여러 가지가 있는데, 그 중 대문자 O 표기법을 가장 많이 사용한다(대문자 O표기법은 '빅 오'표기법이라고도 부른다). 대문자 O 표기법의 정확한 정의와 설명은 일단 생략하고, 예제 프로그램의 계산 복잡도를 대문자 O로 표기하는 방법부터 설명해보자. # algorithm_1 def sum_num(n): result = 0 for i in range(n + 1): result += i return result # algorithm_2 def sum_num2(n): return (n + 1) * (n / 2) 첫 번째 알고리즘은 입력 크기 n에 대해 사칙 연산(덧셈)을 n번 해야 ..