전체 글

😼 Github : https://github.com/Mingyum-Kim
Other/OpenCV

Numpy의 기본 사용법과 연산, 그리고 활용

Numpy는 다차원 배열을 효과적으로 처리할 수 있는 python의 도구이다. 사용할 IDE는 PyCharm이고, 인터프리터에 Numpy를 추가하여 개발 환경을 구성한다. 1. Numpy의 기본 문법 list 자료형을 numpy로 바꾸었다. 'array'는 numpy 라이브러리의 내장 Attribute이므로 다른 단어로 바꿔쓰면 안된다. 이렇게 바꾸어진 Numpy는 행렬의 형태로 array변수에 저장이 된다. import numpy as np array1 = np.arange(4) #0부터 3까지의 배열 만들기 array2 = np.zeros((4, 4), dtype=float) #o으로 배열 초기화 array3 = np.ones((3, 3), dtype=str) #'1'으로 배열 초기화 array4 =..

Langauge/C++

[열혈 C++] 연산자 오버로딩1 내용 요약 및 예제 풀이

Chapter10 연산자 오버로딩 문제 1번 풀이 #include using namespace std; class Point { private: int xpos, ypos; public: Point(int x = 0, int y = 0) :xpos(x), ypos(y) { } void ShowPoint() const { cout

Major Study/Object Oriented Programming

2021 객체지향 프로그래밍 중간고사 대비

#pragma once 왜 있느냐? - 소스 코드를 컴파일 할 때 해당 header file을 한번만 compiler에 포함할 것을 명시. this 포인터에 대해 설명하라 - this 포인터란, 클래스나 구조체, union타입의 멤버 함수(static하지 않음) 안에서 접근할 수 있는 포인터이다. 멤버 함수가 호출되는 객체를 가르킨다. (의문점, this포인터를 사용하면 멤버 함수의 정의에서 매개변수에 그 멤버 함수를 사용하고 접근하고 있는 객체의 이름을 표시할 수는 없을까? 단순히 멤버 변수의 값만 출력할 수 있는 것인가?) 생성자에서 default인자에 대해 설명하라 - default인자란, 생성자 호출 시 인수 값이 제공되지 않을 경우, 컴파일러에서 자동으로 값을 할당하도록 함수 선언에 제공된 값이..

Langauge/C++

Constructor and Separating Files

클래스 생성자 (constructor) * 생성자는 객체가 생성될 때 implicitly(암묵적으로) 호출된다. * 클래스와 같은 이름으로 정의되고, 값을 반환하지 않는다 (void형과는 다름) * 기본 생성자(default constructor)는 매개변수를 가지지 않는다. - 객체 클래스의 데이터 멤버의 생성자만 호출 #include using namespace std; class GradeBook { public: GradeBook(string name) { setCourseName(name); } // 클래스명과 이름이 같고 return 이 없다(void는 아님) void setCourseName(string name) { courseName = name; } string getCourseName..

Other/Hardware

OrCAD Pspice 사용하기

http://www.npit.co.kr/html/dh_board/lists/support102 여기서 4번을 다운 받아 압축을 풀고 setup 프로그램을 실행하여 OrCAD를 설치해준다. new > project 로 프로젝트를 생성해준다. (create blank project 체크) 생성된 도면에서 회로를 그려준다. 시뮬레이션 방법 - Pspice > New Simulation Profile 클릭 후 시뮬레이션 이름 입력 후 확인 Run을 눌러 시뮬레이션 실행 Pspice netist generation complete라고 뜨면 정상 실행된 것임. Bias Point design보기 버튼을 누르면 상태 확인이 가능하다

Langauge/C++

Introduction to classes and objects #1

#pragma once #ifndef TIME_H //TIME_H가 define 되어있지 않으면 #define TIME_H //TIME_H를 define 하여라 class Time { public: // 행동 Time(); //constructor void setTime(int, int, int); void printUniversal(); void printStandard(); private: //속성 int hour; int minute; int second; }; // end class Time #endif // TIME_H가 이미 define 되어있으면 #define문은 실행되지 않는다. ifndef와 endif는 세트이다. - 클래스 정의 : 컴파일러에게 클래스에 속한 멤버 함수와 데이터 멤버를 ..

Algorithm/Baekjoon

[BOJ]11399 ATM : 그리디 알고리즘 C++ 문제풀이

문제 해결은 간단하다. 인덱스를 신경쓰지 말고 Pi배열을 정렬해 새 배열에다 밑의 주석과 같이 값을 정해주면 된다. C++문제 해결 코드이다. #include #include using namespace std; /* * i는 인덱스, Pi는 해당 인덱스의 value이다 * ! 사실상 '누구' 즉 인덱스는 상관이 없다 * 정렬해서 * 새 배열 만들어서 * 맨 처음 인덱스는 그대로 * 두번째는 처음 + 두번째 * 세번쟤는 처음 + 두번째 + 세번째 */ int main() { int N; cin >> N; //사람 수를 담을 배열 int list[1000] = { NULL }; for (int i = 0; i > list[i]; } // list[1000] = { 3, 1, ..

Algorithm/Baekjoon

[BOJ]1449수리공 항승 : 그리드 알고리즘 C++ 해결 코드와 설명

처음엔 테이프를 이어붙이는 동작을 어떻게 프로그램에서 표현할 수 있을까를 고민했다. '0.5'를 표현해야 한다는 고정관념에 사로잡혀 한참을 고민했다. 그러다 배열의 한 메모리를 '구멍' 자체로 생각하니 0.5 같은 건 생각할 필요가 없어졌고, 배열과 파이프를 동일시하여 생각하기로 하였다. 구현 알고리즘과 의사코드는 다음과 같다. 1. 파이프 배열을 생성해 구멍이 생긴 부분의 값을 true로 바꾸어준다. 2. for문을 배열의 처음부터 순차적으로 돌며 맨 처음 true인 부분을 만나면 먼저 false처리 해주고, 그 부분에서 테이프의 길이만큼의 범위에서 true 인 부분이 있는지 이중 for문을 통해 관찰한다. 3. 만약 이중 for문에서 물이 새는 부분이 또 있으면 그 부분을 false 처리하여 중복 동..

Algorithm/Baekjoon

[BOJ]2847게임을 만든 동준이 : 그리디 알고리즘 C++ 문제 해결 및 코드

역시 '최소한' 즉 최적의 답을 찾는 그리디 알고리즘 문제, 반례를 찾지 못하는 틀린 코드만 계속 만들어 내었던 문제인 것 같다. 먼저 생각한 알고리즘은 다음과 같다. // 레벨 점수를 list에 '반대로' 담아 레벨이 높은 순대로 정렬한다. while(비교할 하위 레벨이 NULL이 아닌 경우 if(list[i] > list[i+1]) 넘어가 else count+=(list[i + 1] - list[i] + 1) list[i+1] = list[i] - 1; i++; 이런 의사 코드로 만들어진 코드는 다음과 같다. int main() { int count = 0; int list[100] = { NULL }; int N; cin >> N; //4 for (int i = 0; i < N;i++) { cin ..

MINGYUM
코딩하는 겸