개발 13

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

백준 15813번 너의 이름은 몇 점이니?

https://www.acmicpc.net/problem/15813 15813번: 너의 이름은 몇 점이니? 소윤이는 성필이에게 단단히 화가 났다. 성필이가 자꾸 소윤이의 이름을 놀리는 것이다! 극대노한 소윤이는 이름에 대해 많은 검색을 하던 도중 "이름점수"라는 것을 발견하게 된다. 이름 점수 www.acmicpc.net 이 문제에서 중요하게 봐야 할 점은 알파벳순으로 점수가 1 증가한다는 것이다. 그럼 점수를 어떻게 부여하느냐 그건 간단하다. C++에서 char 자료형을 int 형식으로 바꿀 수 있는데 여기서 바꿀 경우 아스키코드의 10진수로 바뀌어 나오게 된다. 예시로 #include using namespace std; int main(){ char c; int a; c = 'A'; a = c; c..

개발 2024.03.10