본문 바로가기

728x90

분류 전체보기

(81)
확률변수와 확률분포 확률변수란? 확률적인 결과에 따라 결과 값이 바뀌는 변수를 의미한다. 시행의 결과에 따라 값이 결정된다. 확률변수의 종류 1) 이산확률변수 - 확률변수 X로 나올 수 있는 값이 a, b, c, d 처럼 각각 셀 수 있는 경우를 의미 ex) 주사위를 던졌을 때 나올 수 있는 값 : 1, 2, 3, 4, 5, 6 2) 연속확률변수 확률변수 X로 나올 수 있는 값이 연속적인 범위인 경우를 의미 ex) 키, 몸무게 확률분포란? 확률변수가 특정한 값을 가질 확률을 나타내는 함수 확률분포의 종류 1) 확률질량 함수 - 이산확률변수가 특정 값을 가질 확률 ex) 주사위 별 각 숫자가 나올 확률 = 1 / 6 ex) 베르누이 분포, 이항분포 2) 확률밀도 함수 - 연속확률변수가 특정 구간에 포함될 확률 - 연속확률변수..
[Python] asterisk - 가변인자 역할 asterisk의 Unpacking 역할에 이어 가변인자 역할에 대해 알아보자! (unpacking에 대해 궁금하신 분들은 여기!) 함수를 만들다 보면 인자의 개수가 정해지지 않은, 매번 다른 경우가 있을 수 있다. 보통 함수를 정의할 때 함수의 파라미터 이름을 직접 지정해주어야 하는데 이렇게 길이가 매번 다른 경우는 어떻게 할 수 있을까? 바로 asterisk가 이 역할을 해준다! 아주 간단한 예제를 살펴보자! def test(*args) : print(args) >>> test(1, 2, 3) (1, 2, 3) >>> test(1, 2, 3, 4, 5) (1, 2, 3, 4, 5) 그러나 *args의 경우에는 여러 개의 변수를 넘길 수는 있지만 각각의 값에 대한 이름은 붙일 수가 없다..! 따라서 가..
[Python] asterisk - Unpacking의 역할 asterisk는 바로 * 를 의미한다. *를 보면 아마 대부분 가장 먼저 곱하기 연산이 생각날 것이다. (또는 ** 제곱연산?) 그러나 *는 그 외에도 다양한 역할을 하는데 그 중 하나는 바로 unpacking의 역할이다. tuple이나 dict와 같은 자료형에 있는 값들을 unpacking 할 수 있는데 이 말로는 잘 이해가 안갈 수 있으니 예제를 살펴보자 unpacking이 많이 사용되는 부분 중 하나는 바로 print함수이다. 다음과 같은 리스트가 있을 때 *를 통해 리스트로 묶인 값을 unpacking 해줄 수 있다. >>> a = [1, 2, 3, 4, 5] >>> print(a) [1, 2, 3, 4, 5] >>> print(*a) 1 2 3 4 5 이는 코딩 테스트 연습을 할 때도 매우 유..
[sklearn] Target is multiclass Error 해결 모델의 precision 성능을 확인하려고 sklearn.metrics 라이브러리에서 제공하는 precision_score 함수에서 이런 에러를 만났다! ValueError: Target is multiclass but average='binary'. Please choose another average setting, one of [None, 'micro', 'macro', 'weighted']. 이럴 때는 역시 바로 공식 문서를 보는게 최고다. sklearn.metrics.precision_score Examples using sklearn.metrics.precision_score: Probability Calibration curves Probability Calibration curves, Pr..
[Git] Git Repository 일부(하위) 폴더만 clone하기 (예제 포함) Git에 올라와있는 파일들 중 일부 파일만 clone하고 싶은 경우가 종종 있다. 물론 파일 개수가 적고 간단한 레파지토리의 경우에는 전체를 다 다운받아도 상관없으나 사이즈가 큰 레파지토리는 전체 클론을 하는 데에 시간도 많이 걸리고 귀찮을 뿐...! 1. 먼저, 클론할 파일을 저장할 폴더를 생성 후 해당 폴더로 이동한다. mkdir cd > .git/info/sparse-checkout 만약 위 예시의 레파지토리에서 백트래킹 폴더에 있는 코드만 가져오고 싶다면! echo back_tracking/ >> .git/info/sparse-checkout 6. pull 하기 git pull origin master 이렇게하면 원하는 폴더만 싹 가지고 오실 수 있답니다 😄
[BOJ] 9372. 상근이의 여행 (Python) 9372번: 상근이의 여행 첫 번째 줄에는 테스트 케이스의 수 T(T ≤ 100)가 주어지고, 각 테스트 케이스마다 다음과 같은 정보가 주어진다. 첫 번째 줄에는 국가의 수 N(2 ≤ N ≤ 1 000)과 비행기의 종류 M(1 ≤ M ≤ 10 000) 가 www.acmicpc.net * 신장 트리 (Spanning Tree) : 그래프 내에 있는 모든 정점을 연결하고 사이클이 없는 그래프를 의미 이때, 모든 정점을 연결하기 위한 최소 간선의 수는 n-1개입니다. (아무 그래프나 직접 그려보시면 이해하기 쉽습니다!) * 최소 신장 트리 (Minimum Spanning Tree, MST) : 신장 트리 중에 연결 비용이 가장 적은 것을 의미 상근이의 여행 문제는 최소 신장 트리 파트에 속해있긴 하나 비용은 ..
[BOJ] 11725. 트리의 부모 찾기 (Python) 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 트리의 부모 찾기 문제! 방법은 간단하다. 먼저 각 트리에게 연결 된 노드들의 정보를 저장한다. 루트 노드는 무조건 1번 노드로 정해져있으니 1번노드를 시작으로 DFS 또는 BFS로 순회를 하면 각 노드의 부모 노드를 한 번에 찾을 수 있다. * DFS의 경우 recursion limit을 설정해두어야 한다. import sys sys.setrecursionlimit(10**6) input = sys.stdin.readline n = int(input()) tree = [[] for _ in range(n+1)] parents..
[BOJ] 14003. 가장 긴 증가하는 부분 수열 5 (Python) 14003번: 가장 긴 증가하는 부분 수열 5 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (-1,000,000,000 ≤ Ai ≤ 1,000,000,000) www.acmicpc.net 가장 긴 증가하는 부분 수열을 DP로 구하는 방법은 저번에 설명했었다. 이번에는 Lower Bound를 통해서 구하는 방법에 대해 설명하겠다. 먼저 배열 내에서 가장 긴 증가하는 부분 수열의 길이를 구하고자 할 때 첫 번째 숫자부터 순서대로 확인해보면 된다. 이때 1. 현재까지 구한 LIS의 마지막 값보다 더 크면 그냥 값을 이어 붙이면 된다. 2. 현재까지 구한 LIS의 마지막 값보다 작으면 LIS 내에서의 Lower Bound 위..

728x90