본문 바로가기

분류 전체보기

(88)
[C/C++] 코드업(codeup) 1916번 피보나치 수열 (Large) 그리고 메모이제이션 ▽문제 바로가기 https://codeup.kr/problem.php?id=1916 (재귀함수) 피보나치 수열 (Large) $N$번째 피보나치 수를 출력하되, $10,009$를 나눈 나머지 값을 출력한다. codeup.kr 입력 200이하의 자연수 N 입력 출력 N번째 피보나치 수를 출력하되, 10,009를 나눈 나머지 값을 출력 문제 풀이 먼저 일반적인 재귀 함수를 이용하여 N번째 피보나치를 출력하는 코드입니다. #include int recur(int a){ if(a==1||a==2){ return 1; } else{ return recur(a-1) + recur(a-2); } } int main(){ int a, sum=1; scanf("%d", &a); int result = recur(a); ..
[C++] 벡터(vector)와 메소드들(push_back, front, back, begin, end) 표준 템플릿 라이브러리(STL : Standard Template Library) 안에 컨테이너(container), 이터레이터(iterator), 알고리즘(algorithm)템플릿 등을 제공한다. 컨테이너는 배열과 같이 여러 개의 값을 저장할 수 있는 구성단위이다. vector 템플릿 객체를 생성하려면 사용할 데이터형을 나타내기 위해 표기를 사용한다. vector 생성 간단 예) vector a(10);//int형 벡터 10개 생성 vector b(100);//double형 벡터 100개 생성 vector 생성 방법은 여러 가지가 있다. #include #include //vector 사용 using namespace std; int main() { //비어있는 vector 생성 vector a; //..
[C++] 순수 가상 클래스(Pure virtual class)와 순수 가상 함수 순수 가상 클래스란? 순수 가상 클래스(Pure virtual class)는 순수 가상 함수(Pure virtual function)를 멤버로 가진 클래스이다. 순수 가상 함수는 선언은 지금 하지만 나중에 정의하도록 놔둔 함수이다. 따라서 함수 선언 시 '=0'이라는 표시를 한다. 함수에 '=0'과 같은 표현은 어색하지만 하나의 표시라고 생각하자. virtual int getNum() = 0; 예제 #include using namespace std; //부모 클래스 class FirstClass { public: FirstClass() { cout
[C++] 가상 함수(Virtual function)와 소멸자 가상화 가상 함수란? 가상 함수(Virtual function)는 virtual 예약어를 붙여서 선언한 메서드이다. 가상 함수는 과거의 정의가 완전히 무시된다는 것이 특징이다. 사용 방법은 다음과 같다. virtual 반환형식 메서드이름 함수앞에 virtual 예약어만 붙여주면 된다. #include using namespace std; //부모 클래스 class PClass { public: //가상 함수 virtual void printNum() { cout
[C++] 메소드 오버라이드(Override) 메소드 오버라이드란? 메소드 오버라이드는 객체 지향 프로그래밍에서 자식 클래스(파생 클래스)가 부모 크래스에 정의된 메소드를 재정의하는 것이다. 사전적 의미 : (직권을 이용하여 결정·명령 등을) 기각[무시]하다.(출처 : 네이버 사전) 메소드를 재정의하면 기존의 것이 무시된다. #include using namespace std; //부모 클래스 class PClass { public: int getNum() { return num; } void setNum(int param) { num = param; } private: int num = 0; }; //파생 클래스 class CClass : public PClass { public: void setNum(int param) { //num이 0과 10..
[C++] 생성자 상속 생성자를 다중정의 할 수 있다. 상속관계에서 파생 클래스객체를 생성하면 부모 클래스의 생성자도 호출 되는데 부모 클래스에서 생성자를 다중 정의하면 어떤 생성자가 호출될까? #include using namespace std; //부모 클래스 class PClass { public: PClass() { cout
[C++] 접근 제어 지시자(public, protected, private) 접근 제어 지시자란? 접근 제어 지시자(Access Control Indicator)는 클래스 접근을 제어하는 지시자이다. 지사자 설명 public 멤버에 관한 모든 외부 접근이 허용 protected 상속 관계에 있는 파생 클래스에서의 접근만 허용 private 모든 접근 차단 별도로 접근 제어 지시자가 없으면 기본 접근 제어 지시자는 private이다.
[C++] 상속(Inheritance) 상속이란? 상속(Inheritance)은 객체 단위 코드를 재사용하는 방법이며, 이러한 재사용을 통해 기능적 확장이나 개선을 할 수 있다. 기본 작성 문법은 다음과 같다. class 클래스이름 : 접근제어지시자 부모클래스이름 예제 코드를 통해서 상속을 어떻게 사용하고 어떤 식으로 동작하는지 알아보자. #include using namespace std; //부모클래스 class PClass { public: PClass() { cout