no image
[C++] 템플릿
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 함수 중복의 약점 함수 중복은 편리하지만 약점도 있다. 아래 swap() 함수를 보자. #include using namespace std; void myswap(int& a, int& b) { int tmp; tmp = a; a = b; b = tmp; } void myswap(double& a, double& b) { double tmp; tmp = a; a = b; b = ..
2023.12.19
no image
[C++] 추상 클래스
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 순수 가상 함수 기본 클래스에 작성된 가상 함수는 실행할 목적보다는, 파생 클래스에서 재정의하여 구현할 함수를 알려주는 인터페이스 역할 파생 클레스에서 가상 함수를 재정의 하면, Shape 클래스의 draw() 함수처럼, 동적 바인딩에 의해 기본 클래스의 가상 함수는 거의 실행되지 않는다. 순수 가상 함수(pure virtual function)는 함수의 코드가 없고, 선언만 있..
2023.12.19
[백준 3986번] 파이썬 - 좋은 단어
백준 3986 - 좋은 단어 시간 제한 1초, 메모리 제한 256MB # 조건 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 깨고 말았다. 안타깝게도 자는 동안 키보드가 잘못 눌려서 보고서의 모든 글자가 A와 B로 바뀌어 버렸다! 그래서 평석이는 보고서 작성을 때려치우고 보고서에서 '좋은 단어'나 세보기로 마음 먹었다. 평석이는 단어 위로 아치형 곡선을 그어 같은 글자끼리(A는 A끼리, B는 B끼리) 쌍을 짓기로 하였다. 만약 선끼리 교차하지 않으면서 각 글자를 정확히 한 개의 다른 위치에 있는 같은 글자와 짝 지을수 있다면, 그 단어는 '좋은 단어'이다. 평석이가 '..
2023.12.18
no image
[C++] 가상 함수와 오버라이딩의 활용 사례
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 가상 함수는 파생 클래스에서 오버라이딩할 함수를 알려주는 인터페이스의 역할을 한다. 응용 사례를 다루며 아래 4가지 주제에 대해 알아보자. 가상 함수를 가진 기본 클래스의 목적 가상 함수 오버라이딩 동적 바인딩 실행 기본 클래스의 포인터 활용 가상 함수를 가진 기본 클래스의 목적 Shape은 Circle, Rect, Line 등 도형의 공통 속성을 구현하는 기본 클래스의 역할을 ..
2023.12.18
[C++] 오버라이딩
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com C++ 오버라이딩 특징 성공 조건과 실패 가상 함수의 이름과 매개 변수 타입, 개수뿐 아니라 리턴 타입도 일치해야 오버라이딩이 성공 아래는 리턴 타입이 달라 가상 함수 fail()의 오버라이딩이 실패한 사례 #include using namespace std; class Base { public: virtual void success() { cout
2023.12.18
no image
[C++] 가상 함수와 오버라이딩
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 상속 관계에서의 함수 재정의 c++에서는 파생 클래스에 기본 클래스의 멤버 함수와 동일한 이름과 원형으로 함수를 재정의(redefine)하여 사용할 수 있다. 아래와 같이 함수 재정의를 해준 뒤 호출해보자. #include using namespace std; class Base { public: void f() { cout Base::f(); // Base의 멤버 f() 호출 ..
2023.12.18
[백준 3079번] 파이썬 - 입국심사
백준 3079 - 입국심사 시간 제한 1초, 메모리 제한 128MB # 조건 상근이와 친구들은 오스트레일리아로 여행을 떠났다. 상근이와 친구들은 총 M명이고, 지금 공항에서 한 줄로 서서 입국심사를 기다리고 있다. 입국심사대는 총 N개가 있다. 각 입국심사관이 심사를 하는데 걸리는 시간은 사람마다 모두 다르다. k번 심사대에 앉아있는 심사관이 한 명을 심사를 하는데 드는 시간은 Tk이다. 가장 처음에 모든 심사대는 비어있고, 심사를 할 준비를 모두 끝냈다. 상근이와 친구들은 비행기 하나를 전세내고 놀러갔기 때문에, 지금 심사를 기다리고 있는 사람은 모두 상근이와 친구들이다. 한 심사대에서는 한 번에 한 사람만 심사를 할 수 있다. 가장 앞에 서 있는 사람은 비어있는 심사대가 보이면 거기로 가서 심사를 받..
2023.12.15
no image
[C++] 다중 상속과 가상 상속
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 요즘 시대는 융합 혹은 컨버전스(convergence)의 시대이다. 무선 전화기와 MP3의 기능을합친 제품들처럼 각 기능을 모듈화하고 여러 모듈을 조립하면 융합된 새로운 형태의 제품이 만들어진다. SW의 경우에도 다르지 않다. 모듈화를 통해 코드를 재사용하는 것이 대세이며, C++에서는 코드를 클래스로 모듈화하고 상속을 통해 기능을 확장한다. 다중 상속 하나의 파생 클래스가 여러..
2023.12.15
no image
[C++] public, protected, private 상속
황기태 저자의 명품 C++ Programming 개정판을 읽고 학습한 내용을 정리한 포스트입니다! https://search.shopping.naver.com/book/catalog/32436115747 C++ Programming : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 클래스 상속 지금까지는 기본 클래스의 멤버들이 파생 클래스의 멤버로 확장될 때, public 상속에 대해서만 다루었다. 'public 상속'을 사용하면 Base에 선언된 멤버들은 접근 지정을 그대로 유지한 채 Derived의 멤버로 확장된다. class Derived : public Base { ... }; 하지만, 'private 상속' 이나 'protected 상속'은 기본 ..
2023.12.14