재귀는 간단한게 말해서 다시 돌아간다는 의미이다.재귀를 잘 표현해주는 이미지는 다음과 같다.
알고리즘은 최대한 효율적으로 짜여져야 한다. 떄문에 우리는 알고리즘의 수행시간을 고려해서 짜야한다. 알고리즘의 수행시간을 어떻게 알 수 있을까? 경
우리는 다양한 연산자를 사용합니다. 연산을 클래스 끼리 할 수 있을까요?? 한번 알아봅시다. [파이톨치]
앞에 글에서는 class 밖에다가 연산자를 정의했습니다. 그렇다면 클래스 안에다가 정의하면 어떻게 해야할까요? [파이톨치 블로그]
포인터는 익히 알고 있는 개념이다. 포인터는 주소값을 값으로 가지는 변수이다. 주소값을 저장해주어야 하기 때문에 & 연산자를 사용한다.
힙은 우선순위 큐의 한 종류이다. 때문에 리스트에 우선순위를 부여해서 만드는 것이다.
상속은 물려준다는 의미를 가진다. 무엇을 물려주는지 생각해보면 우리는 클래스를 물려준다.예를 들어 더 큰 개념을 가진 클래스를 만들었다고 생각해보자. 클래스 동물을 만들어 놓았을 때 우리는 인간 이라는 클래스를 만든 다고 생각해보자.
상속은 부모 클래스와 자식 클래스로 이루어진 것들이었다. 부모가 자식에게 자신의 함수와 멤버 변수를 주었다. 상속에서 주의할 점은 생성자/소멸자는 상속되지 않는다는 것이었다. Derived class (자식 클래스)는 멤버 변수를 상속 받는다. 하지만! 그들에 직접적으
어떤 행렬 A와 벡터 v가 있다고 생각해보자. 행렬 A와 벡터 v의 곱과 v에 스칼라 곱을 했을 때 같아지게 하는 스칼라의 값을 특성값이라고 한다.
내가 알고싶은 것은 다형성이다. 다형성이란 다양한 형태를 가지는 것을 말한다. 여기서는 함수의 다양성을 말한다. 다형성은 코드의 재사용을 위해서 필요하다. 같은 함수라도 다양한 형태를 가진다는 것이다. 함수 오버로딩이랑 비슷한데 무슨 차이인지는 잘 모르겠다.(ㅋㅋㅋㅋ
앙상블은 조화라는 의미를 지닌 것으로 알고 있다. 그렇다면 머신러닝에서 앙상블은 무엇일까? 그리고 앙상블은 왜 나오게 되었을까?배경은 이렇다 사람도 개인이 혼자서 항상 옳은 결정을 할 수는 없다. 기계도 100퍼센트 맞는다는 보장이 없어서 자기들끼리 투표를 한다. 과반
캐스팅이 뭔지 궁금하면 대표적인 예시로 타입 캐스팅을 생각해볼 수 있다. 형 변환을 생각하면 된다. 이 그림을 보면 잘 이해가 된다. 코드를 살펴보면 다음과 같다.UpcastingDowncasting부모 자식 간에 캐스팅이 가능하다. 자식에서 부모로 가는 캐스팅은 쉽게
캡슐화를 만들 때를 생각해보자. 클래스를 구현하면서 필요한 함수들을 분리한다. 또 클래스가 들어있는 파일과 그렇지 않은 파일로 나눈다. 완전히 분리 되면 클래스가 들어있는 함수가 고치거나 메인 함수가 들어있는 파일을 고치면 된다. 완전히 분리되면 그 두 파일은 독립된
정의 된 이름들의 모음집이라고 한다. 그렇다면 이런 질문이 나온다. 이름? 뭐의 이름인데? 여기서 이름은 클래스의 정의 혹은 변수의 정의를 말한다.우리는 이 개념을 많이 써왔다.이 코드는 아마 std라는 네임 스페이스를 불러오는 코드일 것이다. 프로그램은 많은 클래스와
이것을 쓰는 이유는 앞에서 배웠던 다형성과 이어지는 것 같다. 우리는 함수 오버로딩을 통해서 다른 변수형을 받는 동일한 이름을 가진 함수들을 정의 했다. 이런 식으로 말이다. 하지만 템플릿을 사용하면 그럴 필요가 없다. 이런식으로 사용하게 되면 템플릿에서 타입이름을 알
정렬 백준 같은 사이트에서 문제를 풀 다 보면 많이 만나는 주제이다. 정렬은 다양한 방법이 있고 각각의 상황에 따라 강한 정렬도 있다. 때문에 다양한 종류의 정렬을 알고 있는 것은 꽤 중요하다고 할 수 있다.
http://www.ktword.co.kr/test/view/view.php?m_temp1=4498트렌지스터는 스위치의 역할을 하기도 하고 증폭기의 역할을 하기도 한다. (electrically controlled switches or as amplifier
Vce가 0.2 볼트라고 한다.Vbb = 3, Rb = 10k, Rc = 1k, Vcc = 10이다.흠.. 그렇다면 Ic = (Vcc - Vce) / Rc = (10 - 0.2) = 9.8mAIb = (Vcc - Vbe) / Rb = 0.23mAIc = B Ib =
오버로딩이 무엇인가? 덮어 씌우는 것이다. 그렇다면 연산자 오버로딩은 무엇일까? 당연히 연산자를 새로 덮어 씌우는 것이다! 연산자 오버로딩은 어떻게 할까? 그리고 왜 할까? 할 때 주의 할 점은 무엇이 있을까?다음과 같은 클래스가 있다고 가정해보자. 벡터에서 더하기 연
FNN의 근본적인 문제점, 기울기 소실과 기울기 증폭 현상!기울기 소실 또는 증폭의 이유는 시그모이드 같은 활성함수를 썼을 때 에러기울기 비율 때문에 발생함.딥러닝 기반 모델 Convolutional model : 여러 노드가 가중치 공유를 통한 계산량 축소, 위치와
우리는 이것을 배우기 전에 왜 쓰는지 생각해보아야 한다. 왜 쓰는지 질문을 하고 거기에 대한 답을 낸 후에 배워야 한다. 왜 쓰냐고 묻는다면 값을 잘 저장하기 위해서이다. 배열 인덱스의 경우에 검색에 로그 n / 삽입 삭제에 n의 시간이 들어간다고 한다. 하지만 이진
내적이 뭔데? 내적은 스칼라곱이라고 한다. 두 벡터의 성분을 곱한뒤 모두 더하여 얻는 값이라고 한다. 내적을 통해서 벡터의 길이도 구할 수 있다. 이 길이를 norm이라고 하기도 한다. 이 길이 개념은 확장시켜서 두 벡터 사이의 거리를 구할 수도 있다. 일반적으로 내적
그냥 많이 쓰는 애들을 미리 만들어 놓은 것 같다. 표준 라이브러리는 공통된 클래스를 포함한다. 그리고 일반적인 데이터 구조나 알고리즘을 가지고 있다고 한다. 템플릿 기반으로 작동한다고 한다. 그 예시로 벡터가 있었다.컨테니어 / 순회자 / 알고리즘 으로 구성되어 있다
이 전에 이진 검색 트리를 공부하면서 특이 케이스를 봤었다. 다음과 같이 트리가 굉장히 불균형 적으로 되어 있다면 이진 트리 구조를 쓰는 의미가 없다. 이진 트리의 장점은 아래로 내려가면서 내가 검색해야하는 노드의 수가 줄어 든다는 점이었다. 하지만 이런식으로 되어 있
개인적으로 힙도 어려웠는데 힙으로 정렬을 하라니 무서웠다. 하지만 힙을 이해했다면 힙 정렬을 하는 것은 문제가 아니다. 우선 힙에 대해 복습해보자. 힙은 우선순위 큐의 일종이다. 맨 처음 노드가 젤 작거나 혹은 젤 크다. 힙에서 부모가 k일 때 자식은 2k+1 과 2k
내가 정리할 개념들을 조금 나열해보겠다. 객체 지향이란 무엇인가?구조체란 무엇인가?클래스란 무엇인가?생성자란 무엇인가?연산자 오버로딩은 무엇인가?키워드 friends 는 무엇인가?참조자는 무엇인가?포인터란 무엇인가?동적 배열은 무엇인가? 상속은 무엇인가?동형은 무엇인가
머신 러닝에서 배우는 내용은 방대하며 코드를 다 기억하기 어렵다. 때문에 지금까지 내가 한 학기동안 배웠던 내용을 정리하고자 한다. 내가 정리하고 싶은 내용들의 개념을 한번 보자. 성능 측정머신러니에서 성능을 측정하는 것은 좋은 모델을 만드는 것 만큼 중요하다. 때문에
포인터란 무엇인가?동적 배열은 무엇인가? \~~\~~상속은 무엇인가?동형은 무엇인가? 가상 함수는 무엇인가?NameSpace는 무엇인가?분할 컴파일이란 무엇인가?STL은 무엇인가?많이들 어려워 하는 내용이다. p는 더블에 대한 포인터 변수이다. 포인터는 이런식으로 가리
상수 만들기string 사용하기do while 사용하기++ 응용파일 출력하기더 간결하게 작성cout 출력 조절하기cmath 사용프로그램 강종난수 생성, switch 문반올림, static_cast<"int">참조자 사용배열 사용함수 인자로 배열 앞 대가리 주기
그래프가 뭘까?그래프란 현상이나 사물을 정점과 간선으로 표현한 것이라고 한다. 작년에 이산 수학 시간에 배운 기억이 있다.그래프를 표현하는 방식은 굉장히 다양하다. 인접행렬을 만드는 것은 굉장히 간단하다. 만약에 그래프가 이렇게 있었다고 생각해보자. 철수 기준으로 생
C++ C++은 많이들 배우는 언어이다. 나도 이번 학기 동안 C++과 객체지향에 대해 배웠고 지금 그것을 정리하고자 한다. 내가 나중에 봤을 때 어떤 내용을 했었는지 기억에 남았으면 좋겠고, 내 머리에도 그것이 남았으면 좋겠다. 우선 c++은 c언어를 기반으로 제
인공지능적 사고와 문제해결 이번 학기엔 다양한 과목들을 배웠다. 그 중에서 가장 마음에 드는 과목이었다. 하지만 잘하는가 묻는다면 딱히 잘하진 않고 그냥 열심히 따라가기만 했다. 그래서 잘하고 싶은 마음은 있지만 잘하긴 어려운 과목이었다. 후배들이 이 글을 보고 공