1. 정보 (information)란?확률 : 가능한 모든 상황에서 어떤 이벤트가 발생하는 빈도수 예를 들어 만일 99개의 파란종이와 1개의 빨간종이가 있다고 가정해보자. 만일, 파란종이가 나오면 놀라지 않을 것이고 빨간종이가 나오면 놀랄 것이다. 파란 종이가 나올 확률은 0.99로 높고, 빨간 종이가 나올 확률을 0.01로 낮기 때문이다. 즉 확률이높으면 그 사건이 발생해도 그 사건이 발생해도 놀라지 않고, 확률이 낮으면 그 사건이 발생했을 때 놀라게 된다.확률과 놀람은 서로 반비례의 개념이다. 그래서 놀람을 수학적으로 표현하자면, 확률을 p(x)라고 할경우 놀람은 확률의 역수인, 1 / p(x)로 표현할 수 있다. 실제 정보이론에서 표현하는 놀람의 공식은 log(1/p(x)) 이다. 따라서 ..
STUDY
이분 탐색 알고리즘순차탐색 : 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서 부터 데이터를 하나씩 확인하는 방법 이진탐색 : 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이진 탐색은 시작점, 끝점, 중간점을 이용하여 탐색범위를 설정합니다. 단계마다 탐색범위를 2로 나누는 것과 동일하므로 연산횟수는 $log_2 N$에 비례합니다. 다시 말해, 이진 탐색은 탐색범위를 절반씩 줄이며, 시간 복잡도는 $O(log_2 N)$ 을 보장합니다. 이진탐색 소스코드 : 재귀적 구현 def binary_search(arr , target , start , end) : if start > end : return None mid = (start + end) // 2 ..
파이썬에서 최댓값과 최솟값의 초깃값을 지정하는 방법에 대해 알아보자 1. sys 모듈 사용하여 시스템이 가장 높은 값과 가장 낮은 값을 지정 mx = sys.maxsizemn = -sys.maxsize 2. float 이용해 무한대 값을 지정mx = float('inf')mn = float('-inf') 💡주의! 좋지 않은 방법 mx = 999999 파이썬의 숫자형은 임의 정밀도를 지원하며 사실상 무한대의 값을 지정할 수 있다. 아무리 큰 수라 할지라도 얼마든지 더 큰 수가 지정될 수 있으므로, 이런 식으로 최솟값 변수에 임의의 값을 초깃값으로 지정하는 것을 지양해야 한다.
https://www.acmicpc.net/problem/18008 모스부호는 점(dot)과 대시(dash) 기호의 배열을 알파벳 문자에 할당한 것이다. 모스 부호의 배열을 다시 지정하여 주어진 메세지가장 짧은 길이를 반환하도록 해라. dot : 1 dash : 3 기호 사이 간격: 1 문자 사이 간격: 3 단, 공백, 구두점, 알파벳 대소문자는 무시된다. 💡해결한 아이디어 가장 짧은 길이를 반환하기 위해서는 "빈도수가 높을 수록 작은 길이의 모스부호 배열을 할당" 해야 한다는 것이다. 1. 주어진 메세지가 알파벳인지 확인. 만일 알파벳이라면 대문자 변환한 다음 공백 제거 s = input() filter_s = "".join([char.upper() for char in s if s...