분류 전체보기
-
[자료구조] 체인Computer Science 2022. 5. 17. 10:53
Sequential Representation succesive element is stored at fixed distance apart Linked representation eash element is places anywhere in memory Chain representation in C++ 1. 체인 노드 클래스 template class ChainNode { friend class Chain; private: T data; ChainNode *link; public: ChainNode(T value = "", ChainNode *_link = NULL) { //생성자 data = value; link = _link; } }; 2. 체인 클래스 데이터 멤버 template class Chai..
-
핸즈온 머신러닝[4] 모델 훈련(1)핸즈온머신러닝 2022. 5. 13. 18:58
https://www.youtube.com/watch?v=6omvN1nuZMc&list=PLJN246lAkhQjX3LOdLVnfdFaCbGouEBeb&index=13 선형회귀 MSE를 최소화하는 모델 파라미터를 찾는다. 행렬 곱셈: [θ0,θ1,..,θn][x0,x1,...,xn]^(T) 선형 회귀 계산 방식1: 정규 방정식 import numpy as np X = 2 * np.random.rand(100, 1) y = 4 + 3 * X + np.random.randn(100, 1) rand 함수로 0과 1 사이의 난수를 발생, 100x1 행렬이 생긴다. randn -> 표준 분포 난수 plt.plot(X, y, "b.") plt.xlabel("$x_1$", fontsize=18) plt.ylabel("..
-
[구현] 로봇 청소기(14503)(C++)BOJ C++ 알고리즘 공부 2022. 5. 10. 15:45
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 1. 문제 개요 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북 중 하나이다. 지도의 북쪽에서부터 r번째, 서쪽에서부터 c번째로 위치한 칸은 (r,..
-
[구현] 빗물(14719)(C++)BOJ C++ 알고리즘 공부 2022. 5. 9. 22:15
https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 1. 문제 개요 2차원 세계에 블록이 쌓여있다. 비가 오면 블록 사이에 빗물이 고인다. 비는 충분히 많이 온다. 고이는 빗물의 총량은 얼마일까? 2. 입출력 3. 문제 풀이 처음에는 빗물이 고일 수 있는 조건이 무엇이 있을까 생각을 해보고 그 조건이 만족되면 빗물이 고이는 넓이를 총합에 더해주면 되겠구나!하고 생각했다. 그러나 1%에서 바로 통과되지 못하고 실패가 떴다. 왜 실패..
-
[BFS/DFS] 이분 그래프(1707)BOJ C++ 알고리즘 공부 2022. 5. 8. 17:54
https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 1. 문제 개요 그래프의 정점의 집합을 둘로 분할하여, 각 집합에 속한 정점끼리는 서로 인접하지 않도록 분할할 수 있을 때, 그러한 그래프를 특별히 이분 그래프 (Bipartite Graph) 라 부른다. 그래프가 입력으로 주어졌을 때, 이 그래프가 이분 그래프인지 아닌지 판별하는 프로그램을 작성하시오. 2. 입출력 3. 문제 풀이 BFS 또는 DFS를 이용하되 그래프를 색칠해나가면서 이분 그래프..
-
[구현] 봄버맨(1691)BOJ C++ 알고리즘 공부 2022. 5. 8. 16:22
https://www.acmicpc.net/problem/16918 16918번: 봄버맨 첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. www.acmicpc.net 1. 문제 개요 봄버맨은 크기가 R×C인 직사각형 격자판 위에서 살고 있다. 격자의 각 칸은 비어있거나 폭탄이 들어있다. 폭탄이 있는 칸은 3초가 지난 후에 폭발하고, 폭탄이 폭발한 이후에는 폭탄이 있던 칸이 파괴되어 빈 칸이 되며, 인접한 네 칸도 함께 파괴된다. 즉, 폭탄이 있던 칸이 (i, j)인 경우에 (i+1, j), (i-1, j), (i, j+1), (i, j-1)도 함께 파괴된다. 만약, 폭탄이 폭발..
-
[구현] 한 줄로 서기(1138)BOJ C++ 알고리즘 공부 2022. 5. 8. 00:01
https://www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net 1. 문제 개요 N명의 사람들은 매일 아침 한 줄로 선다. 이 사람들은 자리를 마음대로 서지 못하고 오민식의 지시대로 선다. 어느 날 사람들은 오민식이 사람들이 줄 서는 위치를 기록해 놓는다는 것을 알았다. 그리고 아침에 자기가 기록해 놓은 것과 사람들이 줄을 선 위치가 맞는지 확인한다. 사람들은 자기보다 큰 사람이 왼쪽에 몇 명 있었는지만을 기억한다. N명의 사람이 있고, 사람들의 키는 ..
-
핸즈온 머신러닝[3] 분류(2)핸즈온머신러닝 2022. 5. 5. 13:40
https://www.youtube.com/watch?v=Ie5pFrpKyvM&list=PLJN246lAkhQjX3LOdLVnfdFaCbGouEBeb&index=12 거짓 양성 비율에 대한 진짜 양성 비율 곡선 (Receiver Operating Characteristic) from sklearn.metrics import roc_curve fpr, tpr, thresholds = roc_curve(y_train_5, y_scores) fpr: 특이도, tpr: 민감도 def plot_roc_curve(fpr, tpr, label=None): plt.plot(fpr, tpr, linewidth=2, label=label) plt.plot([0, 1], [0, 1], 'k--') # 대각 점선 plt.ax..