본문 바로가기

전체 글

(594)
[BOJ] 1182 부분수열의 합 부분 수열 합이 S가 되었다고 해도 끝까지 확인을 해보면 또 다시 S가 나올 수 있다. 처음에 S가 0일 경우가 있을 수도 있다. 따라서 합을 레이어가 시작할 때 구한다. #include #define MAXN 20 using namespace std; int N, S, cnt =0 ; long long A[MAXN]; void input(){ cin >> N >> S; int i = 0; while(i > A[i++]; } void solve(long long sum , int index){ sum += A[index]; if(index >= N) return; if(sum == S ) cnt++; solve( sum -A[index], index+1); solve(sum, index..
[BOJ] 6603 로또 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 각 depth마다 index값을 잘 살펴봐야한다. 종료 조건으로 인덱스 값이 넘어가면 끝내야한다. 처음 시작할 때의 index가 0이므로 7개의 배열이라면 인덱스가 8일때부터 끝인것이다.
[Kaggle] 공부하자 어떻게 공부하는게 좋을까요? 처음 시작할 때 많은 답답했던 부분이 이거였습니다. 사실 아직도 답은 못찾았고, 답은 없는 것 같습니다. 하지만 제가 주로 어떻게 하는지 알려드리자면, 일단 캐글 대회 참여해본다. 캐글 대회를 참여하고, 여러 분석한 커널들을 보면 다양한 최신 기술과 문제를 접근하는 방법을 배우게 됩니다. 모르는 코드는 print하면서 분석하고, 안보고 다시 적어본다. 모르는 코드는 어느정도 분석하는 시간을 가져야 합니다. 모르는 함수는 공식 API 문서를 본다. sklearn, tensorflow, pandas, keras.. 와같은 유명 패키지들은 공식 문서가 상당히 잘 되어있습니다. 해당 함수는 여러 파라미터를 가지고 있는데 하나하나 보면서 어떤 역할을 하는지 훑어만 봐도 나중에 활용할 ..
[pyTorch] 이미지 여는 방법 Pytorch에서 이미지 여는 방법(PIL, matplotlib, torchvision) Pytorch에서 이미지 여는 방법 목차 개요 단순히 어떤 폴더에 있는 이미지를 열고자 한다면 PIL을 사용하여 show 하는 방식이 가장 보편적인 방법일 것입니다. import PIL img = PIL.Image.open('./tree.jpg').. aigong.tistory.com
[pandas] min, max
[Pandas] dataframe, series Pandas는 numpy를기반으로 개발된 자료구조 자료구조 - Series : 객체를담을수있는1차원배열 - DataFrame : 스프레드시트의 표같은 형식으로 여러column으로구성 데이터프레임(dataframe) 처음에 말했듯이 데이터프레임은 시리즈가 여러개 합쳐진 자료형이라고 생각하면 된다. 즉 데이터프레임에서 하나의 열만 가져온다면, 그건 시리즈가 된다. [Pandas 기초] 시리즈(Series)와 데이터프레임(Dataframe) 판다스의 기본 자료구조인 시리즈와 데이터프레임을 알아보자 yganalyst.github.io
[ML] Ensemble, Boosting bagging : variance를 감소시키는 역할 boosting : bias를 감소시키는 역할 bagging은 병렬로 학습, boosting은 순차적으로 학습 ( 가중치 재분배를 위해서 ) Boosting AdaBoost / Gradient Boost 가중치 평균을 사용하여 약한 학습자를 더 강력한 학습자로 만드는 알고리즘 그룹을 말한다. "teamwork"에 관한 것 실행되는 각 모델은 다음 모델에 집중할 feature을 결정한다 차례대로 하나는 다른 것으로부터 배우고, learning을 boosting함 1. Gradient Boost gradient boosting regression tree는 여러 개의 decision tree를 묶어 강력한 model을 만드는 ensemble기법입니다. ra..
[ML] Ensemble, Bagging (bootstrap aggregating) - Random Forest bagging : variance를 감소시키는 역할 boosting : bias를 감소시키는 역할 bagging은 병렬로 학습, boosting은 순차적으로 학습 ( 가중치 재분배를 위해서 ) Bootstrap Aggregation (Bagging) 교체된 random sampling을 말한다. 부트스트랩을 사용하면 데이터 세트의 bias(편향)와 variance(분산)을 더 잘 이해할 수 있다 데이터 세트에서 작은 데이터 하위 집합을 random sampling한다 decision tree처럼 분산이 높은 알고리즘의 분산을 줄이는데 사용할 수 있는 일반적인 절차이다. Bagging은 각 모델을 독립적으로 실행한 다음 어떤 모델을 선호하지 않고 마지막에 출력을 집계한다. Problems with Deci..
[ML] Ensemble Ensemble의 목표는 "과적합 최소화"입니다. 여러개의 모델들에서 얻은 데이터로 내가 취사선택하여 사용한다면 아무래도 한개의 모델에서 나온 결과만을 적용할때보다는 유연성이 생길것입니다. 하지만, 당연하게도 여러모델을 한번에 돌리기에 연산량이 엄청납니다.. [코드로 이해하는 딥러닝 17] - Ensemble with CNN [코드로 이해하는 딥러닝 0] - 글연재에 앞서 https://limitsinx.tistory.com/27 [코드로 이해하는 딥러닝 1] - Tensorflow 시작 https://limitsinx.tistory.com/28 [코드로 이해하는 딥러닝 2] - Tensorflow 변.. limitsinx.tistory.com boosting 기법 이해 (bagging vs boosti..
비트연산 1반대값 0 0반대값 1 출력하려면 1^1 -> 0 0^1 ->1
복습1 문제 - 정답 참조 문제 - 스킵함 문제 - 풀었지만 미완성 입출력 - 2557, 1000, 2558, 10950, 10951, 10952, 10953,11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 별찍기 2438, 2439, 2440, 2441, 2442, 2445, 2522, 2446, 10991, 10992 28문제 DP - 1463, 11726, 11727, 9095, 10844, 11057, 2193, 9465, 2156, 11053, 11055, 11722, 11054, 1912, 2579, 1699, 2133, 9461, 2225, 2011, 11052 2751, 11650, 11651, 10814..
DP 하면서 틀리는 것 / DFS하면서 틀리는 것 DP 하면서 틀리는 것 - 변수형 사이즈 - DP배열 초기화 - DP배열 시작 인덱스 DFS하면서 틀리는 것 - 아무것도 포함하지 않는 경우는 제외한다. - 종료 조건 - depth 종료 조건
[BOJ] 11057 오르막 수 11057번: 오르막 수 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수 www.acmicpc.net 수식은 모두 맞았지만 +=과 %의 연산 순서 차로 값이 달라진다. 애매하면 그냥 괄호로 다 쓰는게 확실하겠다. 연산자 우선 순위 다시 공부해라.
[PyTorch] torch view, squeeze, unsqueeze view 주어진 모양대로 배열을 reshape한다. Squeeze dim이 1인 경우를 없애준다. unsqueeze의 인자로 -1을 넣어보겠습니다. -1은 인덱스 상으로 마지막 차원을 의미합니다. 현재 크기는 (3,)이었으므로 마지막 차원에 1인 차원을 추가하면 (3, 1)의 크기를 가지게 됩니다. 다시 말해 현재 텐서의 경우에는 1을 넣은 경우와 -1을 넣은 경우가 결과가 동일합니다. 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net 강의↓ 파이토치로 시작하는 딥러닝 기초 부스트코스 무료 강의 www.boostcourse.org
[PyTorch] torch 함수 Function 1 — torch.tensor t1 = torch.tensor([[21,39],[31,30],[23,43],[11,46],[26,46],[31,25],[21,38],[22,39],[22,19],[18, 14]]) t1 t2 = torch.tensor([]) t2 t2.size() Function 2 — torch.from_numpy a1 = np.array([[1,2,3],[4,5,6]]) a1.dtype t1 = torch.from_numpy(a1) t1.dtype Hight_Weight = np.array([[161,67],[154,76],[172, 61]]) Heart_Rate = np.array([78,89,72]) (Hight_Weight.dtype, Heart_Rate.dtyp..
[BOJ] 2011 암호코드 2011번: 암호코드 나올 수 있는 해석의 가짓수를 구하시오. 정답이 매우 클 수 있으므로, 1000000으로 나눈 나머지를 출력한다. 암호가 잘못되어 암호를 해석할 수 없는 경우에는 0을 출력한다. www.acmicpc.net 한번 확인해보세요 1. 처음에 0~ 의입력을 정상적으로 받는지 ex) 0 -> 0 011 -> 0 0101 -> 0 등등 2. 중간에 0이 있을때 그앞 두자리를 고려하는지 ex) 1203 -> 1 인데 세번쩨 0을 고려하지않고 12를 먼저 고르고 그다음 0을 보고 불가능으로 0을 출력하진 않았는지 3. 26이하와 27이상을 잘 구분하였는지 ex) 2626 -> 4 2727 -> 1 원래 내가 하려던 방법으로 계속 진행해보려 했으나 2번 반례에서 실패.. 1203 DP[0] = A..
Midtread Quantization 2. 균일 양자화 (Uniform Quantization), 선형 양자화 (Linear Quantization) ㅇ 특징 - 양자화 스텝 크기가 균일 함 - 대표값이 같은 개수의 양수와 음수로된 대칭적 레벨 구조를 갖음 - 라운드오프 에러(Round-off Error) = 양자화 스텝 크기의 절반 ㅇ 구분 - Midrise 양자화 (중앙 상승) . 짝수개 스텝으로 양자화 . 2(스텝수) 개의 서로 다른 코드를 갖게됨 . 출력 대표값 레벨에 0 없음 - Midtread 양자화 (중앙 억제) . 홀수개 스텝으로 양자화 (음수 및 양수 부분이 대칭적 구조를 갖음) . 2(스텝수)-1 개의 서로다른 코드를 갖게됨 . 출력 대표값 레벨에 0 있음 스칼라 양자화 [정보통신기술용어해설] www.ktword.co.kr
[C&C++] 자료형 C/C++ 에 존재하는 모든 자료형 개념 총 정리 - Easy is Perfect 알고리즘 문제 풀이 시에, 모르는 게 많이 생기게 됩니다. 특히 자료형에 대한 게 많이 헷갈리는 경우가 존재합니다. 어떤 문제는 long long 자료형을 써야할 때가 있고 (int 형의 범위를 초과해서) melonicedlatte.com [C++ 정리] 자료형의 크기 및 범위 | Opendocs __int64 8 byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 myblog.opendocs.co.kr
[C++] string [C++] string 클래스, 문자열에 대해서 (총정리) 안녕하세요 BlockDMask 입니다. 오늘은 C++의 std::string 클래스(문자열)에 대해서 세세 하게 알아볼것 입니다. 예전 글을 보다가 제가 작성한 이 문서를 보게 되었는데요, 너무 내용이 빈약하다고 blockdmask.tistory.com
HCLK, FCLK, PCLK [이론] FCLK, HCLK, PCLK란? ​우선 공통적으로 포함되는 CLK는 Clock을 의미한다.일정 주기마다 발생하는 클럭에 따라인의적인 신... blog.naver.com
UART 통신 이론, stop, start bit NONE Parity bit, 8 Data bit, 1 Stop bit N,8,1의 의미는 패리티 비트는 없고 데이터 비트는 8, 스톱 비트는 1로 총 9개의 비트가 한문자를 표현한다는 뜻이다. 여기에 표시는 안 하지만 시작 비트 1개를 더해 총 10개의 비트가 한문자를 표현하게 된다. 한문자가 10개의 비트로 구성되면 초당 960 문자를 주고받을 수 있다는 뜻이다. 장치에서는 104 µs 시간 간격으로 전압을 10회 측정하여 시작 비트(Start bit), 종료 비트(1 Stop bit)를 버리고 8개의 비트로 ASCII 테이블에 대입해 문자를 확인하게 된다. "A" ASCII 테이블에서 보면 숫자 65이며 이를 16진수로 변환하면 41이고 이를 이진수로 환산하면 0100 0001 이 된다. 여기에 시..
시리얼 통신 기초 (Serial Communication) Hardware Implementation앞선 내용들은 시리얼의 개념에 대한 내용이었습니다. 여기서는 시리얼의 하드웨어 구현, signal level 에서 살펴봅니다. (RS-232, logic-level (TTL)) 마이크로 컨트롤러나 low-level IC 의 경우 TTL (transistor-transistor logic) level 에서 시리얼 통신을 구현합니다. TTL serial signal 은 마이크로 컨트롤러의 동작 전압에 의해 변화하는데 보통 0V ~ 3.3V 또는 5V 입니다. VCC level (3.3V, 5V, etc.)의 signal의 경우 idle 상태를 의미하며 bit 값으로는 1로 표현됩니다. 이 값은 stop bit 의 값(1)과 같습니다. 0V (GND) signal 은 ..
Fixed Point Precision(고정 소수점) 과 Floating Point Precision(부동 소수점) 컴퓨터론 숫자표현을 어떻게 할수있을까요? 바로 두가지 방법으로 표현할 수 있답니다. 1. Fixed Point 2. Floating Point 가수부(Mantissa)는 1.xxxx 형태로 정규화를 한 뒤 가장 왼쪽에 있는 1을 제거하고 소수점 이하의 자리 값만 표현한다. 예를 들어, 13.5를 32bit 부동소수점 (float)으로 표현해보자. 13.5 → 1101.12 [진수변환] 1101.12 → 1.10112 x 23 [정규화] 부호비트는 양수이므로 0, 지수부는 3이므로 127 + 3 = 130, 2진수로 표현하면 100000102, 가수부는 1.1011에서 소수점 이하 자리만 표현하면 1011이 된다. 최종 값은 0100 0001 0101 1000 0000 0000 00002 Floating ..
[C++] tuple tuple은 기존의 std::pair를 확장한 자료형입니다. std::pair가 2개의 값을 한 번에 저장할 수 있지만 tuple은 제한이 없습니다. 기존의 C++ TR1에서는 10개까지 저장이 되었습니다. tuple은 2개 이상의 값을 한 번에 반환하거나 전달할 때 사용하면 유용합니다. 물론 구조체를 통해서 가능한 방법이긴 하지만 구조체는 정의를 해서 사용해야 합니다. tuple을 이용하면 간단하게 다양한 값들을 한 번에 전달이 가능하게 됩니다. 먼저, std::tuple 안의 안에 필요한 변수 타입들을 작성합니다. typedef로 해당 타입을 OddOrEven 타입이라고 명명했습니다. tuple 변수에 값을 넣을 때는 std::make_tuple()을 사용하면 됩니다. 해당하는 위치에 해당하는 값을 ..
Quantization Quantization (signal processing) - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search Process of mapping a continuous set to a countable set The simplest way to quantize a signal is to choose the digital amplitude value closest to the original analog amplitude. This exa en.wikipedia.org Introduction to quantify neural network - Programmer Sought Originally appeared..
[BOJ] 1987 알파벳 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net string형으로 해보려했는데 잘 안풀린 문제다. c++에서 string형 다루는 방법을 잘 모르는 것을 많이 느꼈다. 비트마스킹 방법을 처음으로 직접 적용해본 문제이다. 백준 1987번 알파벳 문제 링크입니다: https://www.acmicpc.net/problem/1987 DFS(Depth First Search) 알고리즘과 백트래킹 기법을 요구하는 문제였기 때문에 visited 배열을 사용하지 않아도 되는 문제였습니다. 대신, 문제 조건에.. ja..
[C++] string::find() (문자열에서 특정 문자 찾기) string::find() string 클래스의 멤버함수로서, str.find("찾는 문자") 로 사용 반환값은 찾는 문자의 첫번째 인덱스값 찾는 문자가 없을 경우는 string::npos를 리턴한다. (npos는 no position으로 쓰레기값 나옴) [C++] string::find() (문자열에서 특정 문자 찾기) string::find() string 클래스의 멤버함수로서, str.find("찾는 문자") 로 사용 반환값은 찾는 문자의 첫번째 인덱스값 찾는 문자가 없을 경우는 string::npos를 리턴한다. (npos는 no position으로 쓰레기값 나옴. lollolzkk.tistory.com
[BOJ] 2580 스도쿠 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net DFS를 이용해서 스도쿠를 참신하게 풀어낸다. 나는 4방향으로 모두 이동하는 것을 생각했는데 그렇게 풀지 않고 81개의 칸을 차례로 돌면서 0인 값이 나온다면 1부터 9까지 수를 가능한 경우를 모두 넣어준다. 백준 2580번 스도쿠 문제 링크입니다: https://www.acmicpc.net/problem/2580 흥미로운 백트래킹 문제였습니다. 처음에 풀 때는 3*3 칸 내에서도 1~9가 하나씩 존재해야한다는 규칙을 잊어먹어서 틀렸습니다. 3*3 칸 내 인덱스..
[BOJ] 3108 로고 BFS 탐색을 통해 한 붓 그리기 를 수행하는 문제이다 3108번: 로고 로고는 주로 교육용에 쓰이는 프로그래밍 언어이다. 로고의 가장 큰 특징은 거북이 로봇인데, 사용자는 이 거북이 로봇을 움직이는 명령을 입력해 화면에 도형을 그릴 수 있다. 거북이는 위치와 www.acmicpc.net 1. 사이의 간격을 고려해야 풀 수 있다. [ 백준 3108 ] 로고 (C++) 백준의 로고(3108) 문제이다. [ 문제 바로가기 ] [ 문제풀이 ] 1) 처음에 접근하기가 굉장히 어려웠던 문제이다. 먼저 입력을 받는 것 부터 차근차근 알아보도록 하자. 입력으로는 사각형의 양 끝 yabmoons.tistory.com 2. DFS로 해야한다 생각했는데 BFS로도 풀 수 있는 문제였다. [BFS] 3108번 로고 3108..
[C] 배열 초기화( memset, calloc ) 1. memset 2. calloc 3. 기본 C 언어 코딩 도장: 36.2 배열을 0으로 초기화하기 이번에는 배열의 모든 요소를 간단하게 0으로 초기화해보겠습니다. 자료형 배열이름[크기] = { 0, }; array_init.c #include int main() { int numArr[10] = { 0, }; // 배열의 요소를 모두 0으로 초기화 printf("%d\n", nu dojang.io [C] malloc, calloc, realloc을 이용한 메모리 동적 할당 동적할당을 사용하는 이유는 무엇일까? c언어의 메모리 구조에 대해서 알고 있다면 동적할당을 사용하는 이유를 쉽게 알 것이다. 2014/06/26 - [Programming/C언어] - [C] 스택(Stack), 힙(Heap), 데이..