분류 전체보기 476

[c++] 상속받은 함수를 오버라이딩 하기

#include using namespace std;class Base{protected: int m_i;public: Base(int value) : m_i(value) {} void print() { cout   cout (b)이렇게 해주면 위에 있는 operator  상속받은 함수를 감추기using Base::m_i; 이것을 Derived에 넣어주면 m_i가 Derived안에서 public이 되어 버립니다. 이것이 상속된 유도 클래스에서 바꿀 수도 있습니다. class Derived : public Base{private: double m_d;public: Derived(int value) : Base(value) {} using Base::m_i;};이렇게 사용해주면 되는 것입니다. 그러면 ..

[c++] 따배시 상속과 접근 지정자

class Base{public: int m_public;protected: int m_protected;private: int m_private;};int main(){ Base base; base.m_public = 123; base.m_protected = 123;}protected는 class 밖에서 접근을 할려하니 오류가 발생합니다. base.m_protected는 불가능한데요. 당연히 private는 안되는 것을 알고 계실 것이라 생각합니다.  protected는 상속된 곳에서 접근이 되느냐 안되느냐가 public이랑 차이입니다. #include using namespace std;class Base{public: int m_public;protected: int m_protected;priv..

[따배시 11.1 c++] 상속의 기본1

Constructor를 해주는 이유는 메모리가 할당될 때 initializer를 해주기 위한 것입니다.  class Mother{public: int m_i;};class Child : public Mother{public: Child() { this -> m_i = 10; }};이렇게 상속을 받은 것을 this -> 로도 가능합니다.  상속을 받으면 자기 거가 되는 것입니다. 하지만 초기화는 불가능한데요.   class Child : public Mother{public: Child() : m_i(1024) { this -> m_i = 10; this -> Mother::m_i = 1024; }};여기서 초기화를 하면 오류가 발생합니다. 왜 초기화는 안되냐고 생각을 할 수 있습니다.   #inc..

[c++] 2702번 초6 수학

문제  코드#include #include using namespace std;int gcd(int a, int b){ if (a % b == 0) return b; return gcd(b, a % b);}int lcm(int a, int b){ return a * b / gcd(a, b);}int main(){ int n; cin >> n; int x, y; for (int i = 0; i > x >> y; cout  알고리즘 int gcd(int a, int b){ if (a % b == 0) return b; return gcd(b, a % b);}바로 gcd를 구하는 코드를 알면 쉽게 풀 수 있지만 이에 대한 코드가 모르면 갈피를 잡지 못할 수 있습니다.  유클리드 알고..

[c++] 2903번 중앙 이동 알고리즘

문제https://www.acmicpc.net/problem/2903 코드#include #include using namespace std;int n;int main(){ cin >> n; int dot = 2; while (n--) { dot = dot * 2 - 1; } cout (pow(dot, 2))  설명 주어진 도형을 잘 보면 2 * 점의 개수 -1 순으로 증가를 하는 것을 볼 수 있습니다. 이것을 바탕으로 while문을 걸어준 다음 pow(dot, 2)) 혹은 dot * dot를 출력해주시면 답은 나옵니다. 간단한 문제라 점의 개수가 어떻게 증가하는지 여부만 파악한다면 쉽게 풀 수 있는 문제였습니다. 예제 실행 흐름 만약 n = 3을 입력받으면: 1. 초기 dot = 2. 2. 첫 번째 ..

[C++] 2720번 세탁소 사장 동혁

문제 코드#include using namespace std;int main(){ int n, j; int arr[4] = { 25, 10, 5, 1 }; cin >> n; int a, b, c, d; for (int i = 0; i > j; a = j / arr[0]; j -= a * arr[0]; b = j / arr[1]; j -= b * arr[1]; c = j / arr[2]; j -= c * arr[2]; d = j / arr[3]; j -= d * arr[3]; cout  문제 해설금액을 각각의 동전 단위로 나누어서 최소 동전을 환산하는 것입니다. 이같은 경우 탐욕적 알고리즘을 사용하면 금방 풀 수 있습니다.  일단 저는 그냥 흐름대로 코딩을 작성하여서 제 코드가 최선의 알..

[C++] 상속이란?

컴퓨터를 생각해봅시다. 컴퓨터에 들어가는 제품은 노트북에도 들어갑니다.  이 경우에 부모와 자식간의 관계에 있는 클래스라 규정이며 이것은 바로 상속이라고 합니다. A notebook is a Computer이다. 이 경우 Notebook 클래스를 새롭게 정의하는 대신 computer 클래스를 확장하여 간단히 정리할 수 있습니다.  추가되는 멤버들만 기술함으로써 정의할 수 있는 것입니다.  클래스class Computer{public: string manufacturer; string processor; int ramSize; int diskSize; double processorSpeed; double computerPower() { return ramSize * processorSpeed; } dou..

[c++] 백준 알고리즘 1100번 하얀칸

문제 코드#include #include using namespace std;//하얀색 0 검은색 1 int main() { int arr1[8] = { 0, 1, 0, 1, 0, 1, 0, 1 }; int arr2[8] = { 1, 0, 1, 0, 1, 0, 1, 0 }; string n; int count = 0; for (int k = 0; k > n; for (int i = 0; i  문제풀이이중 for문을 써주고 if문으로 처리를 해주었습니다.체스판에서 0을 하얀색으로 1을 검정색으로 해서 배열을 만들어줬으며 총 세로기준으로 홀수일 때 arr1, 짝수일 때 arr2가 나오도록 해주었습니다. 코드는 읽어보면 풀 수 있을 정도의 난이도입니다. 물론 이 풀이말고 다르게 풀이를 해도 되는데요. cha..

카테고리 없음 2024.05.24

[c++] 백준 2563번 색종이

문제코드#include using namespace std;int main(){ int arr[101][101] = { 0, }; // 101x101 크기의 2차원 배열을 0으로 초기화하여 선언 int a, b; int num; cin >> num; // 사각형의 수를 입력받음 int answer = 0; // num개의 사각형을 입력받아 그리기 for (int k = 0; k > a >> b; // 사각형의 시작 좌표 (a, b)를 입력받음 for (int i = a; i  해설처음에는 어떻게 푸는지 조금 시간이 걸렸습니다. 겹치는 부분을 전체 영역에서 빼서 구해야 하나? 생각을 하다가 도저히 모르겠어서 다른 정답 풀이의 푸는 방법을 조금 보고서 ..