전체 글(301)
-
딥러닝 추천 강의 기록
https://fullstackdeeplearning.com/spring2021/ Full Stack Deep Learning Hands-on program for software developers familiar with the basics of deep learning seeking to expand their skills. fullstackdeeplearning.com 기본적인 영어라서 이해 가능하다. 그래도 혹시나 놓치는 부분이 있을까봐 국내의 DL 베스트셀러인 '밑바닥부터 시작하는 딥러닝'도 주문해서, 함께 조금씩 공부해보고 싶다. 물론 커리어에 쓰려는 목적은 없고, 그냥 정말 궁금하기 때문이다. 학부 시간에 조금 배우긴 했는데 워낙 두서없이 갑자기 배우고 적용했어야 해서 힘들었다. 그걸 애매..
2022.06.05 -
[백준] 9465: 스티커
https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 이전에는 실버 단계도 어려워서 못 풀었던 문제였는데 이제는 쉽게 느껴지는 문제였다. 대신 메모리를 잘 할당해야한다는 주의를 얻었다. 2 by n이면 충분했으나 까먹고 습관적으로 n by n 배열을 할당해 최초 시도 시에는 메모리 초과가 떴기 때문이다. 그래서 메모리 할당을 제대로 다시 해주니 정상적으로 통과가 된다. 하지만 이는 부수적인 거고, 핵심은 아니다. 핵심은 어떻게 스티커의 점..
2022.06.04 -
1시간만에 GAN(Generative Adversarial Network) 완전 정복하기
Supervised Learning(지도 학습) - Lableled data. Direct feedback - 문제와 정답을 모두 알려주고 학습 시키는 방법 - 주로 예측, 분류에 사용 - 주로 Discriminatvie Model 분류(Classification)는 찾아내고 싶은 답의 종류가 문자이다. 분류는 미리 배운 레이블(Label)을 바탕으로 주어진 데이터가 어느 그룹에 속하는지 찾아내는 방법이다. 컴퓨터는 각각의 데이터의 특징(Feature)을 파악하여 판가름한다. 분류 문제의 정확도가 높아지려면, 학습된 데이터를 잘 분류할 수 있는 함수를 찾는 것이 중요하다. 학습 데이터의 특징을 명확히 구분할 수 있는 함수일수록 새로운 데이터를 잘 구분할 가능성이 높다. 회귀(Regression)는 찾아내..
2022.06.04 -
[백준] 1275: 커피숍2
https://www.acmicpc.net/problem/1275 1275번: 커피숍2 첫째 줄에 수의 개수 N과 턴의 개수 Q가 주어진다.(1 ≤ N, Q ≤ 100,000) 둘째 줄에는 처음 배열에 들어가 있는 정수 N개가 주어진다. 세 번째 줄에서 Q+2번째 줄까지는 x y a b의 형식으로 x~y까지의 합 www.acmicpc.net 백준 2042번: 구간 합 구하기와 유사한 문제이다. 그러나 여기서 중요한 점은 조건의 함정이다. 문제를 보면 $x y$이면 $swap(x, y)$을 해줘야한다는 점이 이 문제 풀이의 핵심 포인트이다. 그리고 까다롭게 입출력에 대한 동기화를 해제하여야만 시간 초과가 되지 않고 통과된다. #include #include #include using namespace st..
2022.06.04 -
[백준] 2042: 구간 합 구하기(Segment Tree)
이전에 틀렸다가 이제서야 세그먼트 트리를 복습하고 성공한 문제이다. 그 때는 세그먼트 트리가 너무 어려운 개념이었는데 이제는 쉽게 이해된다. 세그먼트 트리는 저장된 자료를 트리 형식으로 저장하여 빠르게 구간합을 쿼리할 수 있도록 한다. 여기서 세그먼트 트리는 크게 3가지의 기능이 필요하다. 💚 세그먼트 트리 만들기 배열을 통해 트리를 구현한다. 인덱스 1부터 트리를 노드 간의 합으로 구성한다. 만약 구간 합이 아니라 구간의 최댓값, 최솟값 등 다양하게 응용 가능하다. 여기서 중요한 점은 트리 배열의 크기다. 단순히 리프 노드 뿐만 아니라 구간합을 표현하는 중간 노드들도 배열의 노드로 차지 하기 때문이다. 배열의 원소가 N이라면, N이 2의 제곱수라면 Full Binary Tree가 되므로 노드의 개수는 ..
2022.06.03 -
[Codeforces] Number of Groups(UnionFind, Greedy)
https://codeforces.com/contest/1691/problem/E Problem - E - Codeforces codeforces.com 이번 문제 풀이의 가장 큰 풀이는 크게 두 가지로 나눈다. 1. 그룹을 만든다. 2. 그룹의 수를 센다. 처음에는 크게 1번의 경우에는 Greedy 알고리즘, 2번의 경우에는 Union-Find 알고리즘이 쓰이면 좋을 것 같다는 떠오른다. starting and ending points를 set로 저장한다. 예를 들어 (0, 10)와 (11,12) 가 있다면 우리는 0, 10, 11, 12를 색상 상관없이 set에 저장한다. 그리고 이 점들을 오름차순으로 정렬한다. 우리는 색상별로 2개의 set를 가진다. 이 sets에서 starting index에는 ..
2022.06.03