전체 글

미지의 코딩세계로
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.객체 지향 프로그래밍 기법함수 오버로딩중복된 이름의 함수를 여러 개 정의 가능하다.파라미터 개수, 타입을 다르게 정의해야 한다.생성자, 메서드, 전역함수 모두 적용 가능하다.함수 오버라이딩상속받은 클래스의 멤버 함수를 재정의 한다.다형성을 구현하는 데 사용된다.상속1차적인 목적: 코드 재사용성을 높이기 위함객체지향의 핵심 다형성을 구현한다.생성자/소멸자생성자반환 타입이 없고, 이름이 클래스와 동일한 멤버 함수객체와 멤버 변수를 초기화 한다.오버로딩이 가능하다.객체 생성 시 한 번 호출된다.기본 생성자를 명시적으로 제공하는 것이 좋다.Point arr[3]; //Point의 기본생성자가 없는 경우 처..
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.객체 지향 프로그래밍객체 지향 프로그래밍이란객체를 정의모델링에서 도출된 샘플을 클래스로 정의객체가 갖는 2가지 종류의 관계상속포함 클래스 정의일반적인 형태class Class_name { // 멤버 변수: 값의 저장 목적 // 멤버 함수(메서드): 기능 제공 목적}; 멤버 변수값 저장객체의 정보를 저장한다.값은 변경 가능하다.멤버 함수(메서드)객체의 기능을 제공한다.접근 제어자private클래스 내에서만 접근 가능protected상속 관계 내에서만 접근 가능public클래스 외부에서 접근 가능잘못된 클래스 예제10개의 주소를 저장하는 Addr 클래스class Addr {public: char *na..
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.클래스객체의 2가지 의미설계 맥락에서의 객체모델링에서 도출되는 샘플을 객체로 본다.유즈케이스 등으로 요구분석이 우선 시 되어야 한다.요구사항 분석을 통해 기능들을 도출해야 한다.ATM 출금- 카드 인식- 비밀번호 입력- 출금 금액 입력    - 잔액 부족- 계좌에서 인출- 돈 출력객체 모델링에서 도출된 샘플카드:    카드사, 번호, 비밀번호, 계좌계좌:    은행 이름, 계좌 번호, 비밀번호프로그램 개발 맥락에서의 객체클래스 타입의 변수를 말한다.구현된 객체변수: 데이터 저장함수: 기능을 제공class Card {...}; ※ 질문, 개선점, 오류가 있다면 댓글로 남겨주세요 :)
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.참조자변수에 대한 별칭이다.초기화 시 값을 대입해주어야 한다.NULL을 삽입할 수 없다.변수의 이름과 차이가 없다.함수의 파라미터로 넘겨 받을 때 유용하다.참조자 선언에는 제한이 없다.하나의 값을 가리키는 참조자가 많을 경우, 값이 어디서 변경되었는지 파악하기 힘들기 때문에 위험하다.Call by value VS Call by referenceC에서는 함수의 매개변수로 변경할 값의 주소를 넘겨주는 것을 call-by-reference로 보았다.C++에서는 변경할 값의 주소를 넘겨주는 것 또한 주소값의 복사로 보기 때문에 call-by-value이다.참조자의 사용 목적이다.함수 호출 과정에서 레퍼런스..
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.C++ 개요using namespacescope 연산자C++는 중대형 프로젝트를 관리하기 위한 목적의 언어이다.이름이 충돌할 가능성이 크다.영역을 구분하여 충돌을 방지해야 한다.main의 반환값프로그램 종료 코드부모 프로세스로 전달된다.멀티 프로세싱을 사용하면 큰 의미가 없을 수 있다.함수특정 기능을 제공하기 위한 것목적에 따라 접근 제어자를 설정해주어야 한다.접근 제어자(access modifier)defulat 값은 private이다.pipeline 연산자 (원시 자료형은 내부적으로 문자열로 변환이 되어 출력된다.멤버 직접 연산자(.)와 멤버 간접 연산자(->)메모리 할당 연산자(new)클래스의..
※ LIG Nex1 The SSEN Embedded SW School에서 진행된 내용을 정리한 포스팅입니다.C vs C++C언어구조적 프로그래밍시간의 흐름에 따라 동작한다.구조체변수 선언 위치가 고정되어있다 C++객체지향 프로그래밍현실 세계가 복잡해지면서 정보의 양이 많아짐에 따라 고안되었다.구조체에 대응되는 클래스함수 추가 -> 전역함수만 있었던 C와는 달리 클래스는 멤버 함수를 가질 수 있다.함수 오버로딩, 오버라이딩생성자와 소멸자상속변수 선언 위치가 자유롭다.new와 delete참조변수(&): 변수의 별칭C에서의 call by reference가 call by value로 전환했다.작은 프로그램인 경우 C로 작성하는 것이 적합하다.중대형 프로그램인 경우 관리를 위해 객체 지향 언어를 사용해야 한다...
동전링크: https://www.acmicpc.net/problem/9084문제 해결 과정1. 문제를 읽고 이해하기테스트 케이스의 개수 T (1 동전 종류의 수: N (1 만들어야 하는 금액: M (1 N가지의 동전을 가지고 M을 만들어야 한다. 만약 10원과 20원을 가지고 50원을 만드는 경우의 수는 3가지가 있다.1. 10 10 10 10 102. 10 10 10 203. 10 20 202. 재정의와 추상화N 개의 수를 사용하여 어떤 수 M를 만들 수 있는 경우의 수를 구해야 한다.3. 계획 세우기각 상황에 대한 모든 경우의 수를 나열하다보면 감을 잡을 수 있다. 10과 20으로 50을 만드는 경우의 수10원과 20원으로 50원을 만드는 경우의 수를 다시 확인해보자1. 10 10 10 10 102...
LCS최장 공통 부분 수열 알고리즘은, 여러 문자열의 부분 수열 중 가장 긴 수열을 찾는 알고리즘이다.여기서는 두 개의 수열에 대한 해만 다룰 것이다.diff 프로그램의 근간이되는 알고리즘이다.시간 복잡도주어진 수열의 개수가 일정할 때 DP(Dynamic Programming), 동적 계획법으로 풀이할 수 있다.길이가 N과 M인 두 수열이 주어졌을 때 일반적으로 O(N * M)의 시간복잡도를 가진다.LCS 문제의 풀이LCS는 *optimal substructure와 **overlapping subproblems 성격을 지니고 있다. 두 속성을 공유하는 경우 하위 부분 문제들에 대한 최적해를 저장한 메모이제이션 기법을 통한 DP풀이를 사용할 수 있다.*optimal substructure: 하위 문제의 최..
coco_daddy
비트비트 메리고라운드