전체 글 16

C++ 템플릿

템플릿이란 형판, 형틀, 어떤 특정한 모양을 만들기 위해 만들어진 틀 이란 뜻을 가진다. 프로그래밍에서의 템플릿 알아서 잘 딱 깔끔하고 센스있게 변수타입을 바꾸어주는 틀이다. 템플릿 종류 함수 템플릿 클래스 템플릿 함수 템플릿 선언 예시 template T Name(T value) { return value; } 클래스 템플릿 선언 예시 template class MyCar { public: private: }; 템플릿 사용 예시 #include using namespace std; template T Name(T value); int main() { cout

개발 2024.04.19

시간 복잡도

계산 복잡도 이론에서 시간 복잡도는 문제를 해결하는 데 걸리는 시간과 입력의 함수 관계를 가리킨다. 좋은 알고리즘이란? 실행시간이 적으며 결과가 정확한 알고리즘 복잡도 분석 공간 복잡도 분석 : 수행 시 필요로 하는 메모리 공간 분석 시간 복잡도 분석 : 수행 시간 분석 수행 시간 : 최악의 경우 입력에 대한 기본 연산(산술, 대입, 비교, 이동)의 횟수 빅오 표기법 알고리즘의 효율성을 표기하는 표기 법 이다. 특징 빅오 표기법의 가장 큰 특징은 상수항을 무시하는 것이다. 예를 들어 O(2N^2) 이라면 O(N^2)으로 표기해야 한다. 성능

개발 2024.04.16

C++ 클래스

클래스 메서드와 속성을 가지고 있는 구조체 객체 클래스로 생성한 인스턴스 접근제한자 private 멤버 클래스 안에서만 protected 멤버는 클래스 안과 상속된 클래스에서 public 멤버는 어디서나 사용될 수 있다. 생성자1. 생성자는 오직 한 번만 실행된다. 1. 생성자는 오직 한 번만 실행된다. 2. 생성자 함수의 이름은 클래스 이름과 동일하게 작성되어야 한다. 3. 생성자 함수의 원형에 리턴 타입을 선언하지 않는다. 4. 생성자는 매개변수를 달리하여 중복 가능하다.

개발 2024.04.02

C++ vector

vector 배열의 단점을 보완한 컨테이너. 실행 시간 크기를 변경할 수 있는 동적 배열. 추가되는 요소의 개수에 따라서 자동적으로 크기가 조절됨 배열 = 가변길이 배열 vector 동작원리 1. 여유분을 두고 메모리를 할당한다. 2. 유분이 꽉찼다면 기존의 영역을 버린다. 3. 기존의 크기에서 1.5배 사이즈로 새로운 영역을 만든다. 4. 새로운 영역으로 옮겨간다. 사용법 헤더파일 vector를 선언한다. #include 선언 vector 이름 (크기); vector iv; 멤버함수 사용 예 0~9 까지 출력하는 코드 #include #include using namespace std; int main() { vector v(10); for (int i = 0; i < 10; i++) { v[i] = ..

개발 2024.03.30

백준 25501번 재귀의 귀재

https://www.acmicpc.net/problem/25501 25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net 이 문제는 이미 코드가 던져저 있어서 문제만 제대로 읽는다면 쉽게풀수 있는 문제이다. 출력 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한 다. 출력을 간추려 보자면 첫 번째에는 isPalindrome 함수의 반환값 두 번째에서는 isPalindrome 안에서 사용한 recursion 함수의 실행 카운트를 출력하면 된다. 필자 같은 경우 값 참조인 Reference를..

개발 2024.03.22

C++ 열거형

열거형 이란? 프로그래머가 만든 사용자 정의형 열거형은 식별자를 값으로 저장할 수 있는 형 열거형 선언 하는 법 enum Direction {None,Left,Right,Forward}; 열거형의 식별자는 상수로 관리된다. 식별자의 값을 따로 넣지 않을경우 오른쪽으로 차례대로 0부터 1씩 증가한 값이 들어가게 된다. 하지만 값을 넣어줄 경우 enum Direction {None,Left = 2,Right,Forward}; None은 그대로 0이 들어가지만, Left 다음인 Right부터 그전 값의 1씩증가한 값이 들어가게 된다. 열거형 변수 선언 하는법 Direction dir = None; 열거형 변수 활용 예제 #include using namespace std; enum Direction {None..

개발 2024.03.19

집중 안 되는 밤 (2024-03-10)

아침에 낮잠을 오래 자는 바람에 밤에 잠이 오지 않았다. 그렇다고 집에서 공부를 하자니 집중이 잘되지않았다. 그리하여 나는 집 근처 카페로 향했다. 내가 향한 카페는 24시간 무인카페이다. 아래의 사진은 카페에서 블로그를 쓰고있는 사진이다. 카페는 1인 1음료가 기본이며 음료 1개당 2시간씩 있을 수 있는 곳이다. 내가 이 카페를 들어온 이유는 거리가 가까운 것도 있겠지만 가장 중요한 건 제한 시간이 명확하기 때문이다. 다른 카페 같은 경우 음료 1개를 주문하고 오래 앉아있기 눈치 보이지만 오히려 이곳은 시간이 정해져 있으니 맘 편하게 있을 수 있어서 들어온 것이다. 카페에 앉아 나는 백준을 하염없이 풀었다. 1학년 때까지는 C#을 이용해 풀었지만. 2학년인 지금은 C++을 이용해 풀고 있다. 이 글을 ..

일상 2024.03.10