분류 전체보기 57

[명품 C++] 05 함수와 참조, 복사 생성자

출처 : 명품 C++ Programming (저자 황기태) 객체지향프로그래밍 노션 공유를 원하시는 분은 댓글에 이메일 남겨주세요 함수의 인자 전달 방식 값에 의한 호출 call by value 주소에 의한 호출 call by address 참조에 의한 호출 call by reference 값에 의한 호출 call by value 함수가 호출되면 매개 변수가 stack에 생성됨 호출하는 코드에서 값을 넘겨줌 호출하는 코드에서 넘어온 값이 매개 변수에 복사됨 #include using namespace std; void swap(int a, int b) { int tmp; tmp = a; a = b; b = tmp; } int main() { int m = 2, n = 9; swap(m, n); // 값이 ..

[전공] 2022.06.05

[명품 C++] 04 객체 포인터와 객체 배열, 객체의 동적 생성

출처 : 명품 C++ Programming (저자 황기태) 객체지향프로그래밍 객체 포인터 객체의 주소 값을 가지는 변수 포인터로 멤버를 접근할 때 . 연산자 대신 - > 객체포인터 - > 멤버 Circle donut; double d = donut.getArea(); // p의 자료형은 Circle * Circle *p; // 객체에 대한 포인터 선언 p = &donut; // 포인터에 객체 주소 저장 d = p -> getArea(); // 멤버 함수 호출 *포인터로도 private 에는 접근 불가능 p->getArea() == (*p).getArea() // (*p)는 객체 자체가 된다. 객체 배열, 생성 및 소멸 객체 배열 선언 객체 배열을 위한 공간 할당 배열의 각 원소 객체마다 생성자 실행 매개..

[전공] 2022.06.02

[명품 C++] 03 - 2 생성자 소멸자 구조체

출처 : 명품 C++ Programming (저자 황기태) 객체지향프로그래밍 생성자 constructor 객체가 생성되는 시점에서 자동으로 호출되는 멤버 함수 클래스 이름과 동일한 멤버 함수 리턴 값이 없다. class Circle { Circle(); // 클래스 이름과 동일 Circle(int r); // 생성자 중복 선언 - 매개 변수 없는 생성자, 매개 변수 가진 생성자 }; Circle::Circle() { } // 생성자 함수도 구현해야 한다. Circle::Circle(int r) { } 생성자 함수의 특징 생성자의 목적 객체가 생성될 때 객체가 필요한 초기화를 위해 멤버 변수 값 초기화, 메모리 할당, 파일 열기, 네트워크 연결 등 생성자 이름은 반드시 클래스 이름과 동일 리턴 타입이 없다..

[전공] 2022.06.02

[명품 C++] 03 클래스와 객체

출처 : 명품 C++ Programming (저자 황기태) 객체지향프로그래밍 객체 캡슐화 객체의 본질적인 특성 외부에 객체의 일부분 공개 멤버 변수와 멤버 함수 상태 state와 행동 behavior로 구성 멤버 변수에 상태 저장 멤버 함수에 행동 저장 직접 값에 접근하지 않음 → 멤버 함수를 통해 멤버 변수에 접근 클래스와 객체 클래스 객체를 만드는 틀, 설계도 객체 (== 실체)가 아님 멤버 변수와 멤버 함수로 구성 클래스 선언부 class declaration class 키워드를 이용 멤버 변수와 멤버 함수 선언 멤버 변수는 클래스 선언 내에서 초기화할 수 없음 멤버 함수는 원형 prototype 형태로 선언 멤버에 대한 접근 권한 지정 private, public, protected public ..

[전공] 2022.06.02

[명품 C++] 02 C++ 프로그래밍의 기본

출처 : 명품 C++ Programming (저자 황기태) 객체지향프로그래밍 (윤영 교수님) 주석문 개발자가 붙인 메모, 프로그램에 대한 설명 프로그램의 실행에 영향을 미치지 않음 /* 여러 줄 주석 * // 한 줄 주석 #include #include 전처리기 C++ preprocessor에게 내리는 지시 컴파일 전에 실행 헤더 파일 컴파일러가 설치된 폴더에서 찾으라는 지시 표준 입출력을 위한 클래스와 객체, 변수 등이 선언 코드로 정의되어 있지 않음! 확장자 없는 텍스트 파일 include 폴더에 존재 *표준 C++에서 헤더 파일은 확장자 없음, 이름 공간 적시 필요 main() 함수 프로그램의 실행을 시작하는 함수 운영 체제 OS가 main() 함수 실행 main()이 종료하면 프로그램 종료 반환값..

[전공] 2022.06.02

[명품 C++] 01 C++ 시작

참고 : 명품 C++ Programming (저자 황기태) 객체지향프로그래밍 프로그래밍 언어 기계어 - 어셈블리어 - 고급언어 어셈블러 : 어셈블리어 프로그램을 기계어 코드로 변환 컴파일러 : 고급 언어로 작성된 프로그램을 기계어 코드로 변환 컴파일 : 고급 프로그램을 기계어 프로그램으로 변환하는 과정 C++ 언어의 역사 연대순 C → C++ → JAVA → C# C언어에 객체 지향 특성(object oriented programming) 및 기능 추가 C++은 C언어의 모든 기능 유지 C++ 표준 1998년 ANSI(American National Standards Institue)에서 표준 설정 그 후 C++ 표준 계속 진화 표준의 중요성 모든 플랫폼, 모든 표준 C++ 컴파일러에 의해 컴파일 가능 ..

[전공] 2022.06.02

SUAPC 2022 Winter 문제 풀이 + 후기

C번 - 카카오뷰 큐레이팅 효용성 분석 (브론즈 2) (1AC 0WA) A번 문제를 읽고 있었는데 스코어보드에 C번에 풀리는 것을 보고 바로 C번으로 넘어왔다. 단순하게 입력을 배열에 저장하고 합을 구하는 문제였다. 첫 번째 줄 입력 받으면서 배열에 흥미도를 저장하고 전체 흥미도의 합을 구했다. 두 번째 줄 입력을 받으면서 0을 입력받은 경우 동일한 index의 흥미도를 앞서 저장한 배열에서 찾아 변수에 더했다. 알고리즘은 문제를 읽으면서 바로 파악했는데 A번 풀다가 넘어오는 시간과 C++로 구현하는 시간이 더해져 11min만에 풀었다. 더 빨리 풀 수 있었는데 늦게 제출해 조금 아쉬운 문제이다. C번 코드 #include #include using namespace std; int n; // 콘텐츠의 ..

[기록] 2022.04.27

SUAPC 2022 Winter 참가 후기

SUAPC 2022 Winter 참가 후기 결과부터 이야기하자면 4 AC 0 WA로 32위를 했다. 목표했던 ‘4솔에 제출 수를 줄이자’를 달성해서 기쁘다. BLAZING DEVS 팀 결성 SUAPC에 참가하기 위해 작년 7월 팀이 꾸려졌다. wltnjeon0119님이 SUAPC를 같이 나가자고 제안해주셔서 불코도 멤버인 wltnjeon0119님, uwoobeat님과 함께 출전했다. 팀명은 BLAZINGdevs. 우리 스터디의 정체성, 불타는 코딩 도비들을 잘 알려주는 팀명이다. 여담이지만 스코어보드를 보니 재치 있는 팀명들이 정말 많았다. 우리 팀명 너무 노잼 아니었나 싶다...ㅎㅎ 연습 팀 연습 시작 2월 전까지는 하이아크와 ICPC-신촌 초급 스터디 문제셋을 풀면서 코드 리뷰를 진행했다. SUAPC..

[기록] 2022.04.27

HI-ARC 하이아크 운영진 면접 후기

아.. 면접이네.. 면접 끝나고 30초 후에 쓰는 따끈따근한 후기이다 하하하핳ㅎㅎ하하하하핳ㅎㅎㅎㅎㅎㅎ 정규 회의 전 가볍게 인사 나누는 자리로 생각했다가 진지한 면접이라는 사실을 깨닫고 머리가 하얘지고 같은 말만 반복하는 아찔한 경험을 했다. 하이아크 운영진이 부족하다는 정보를 알고 있어서 당연히 면접도 형식상 보는 것이라고 생각했다. 압박 면접까진 아니었지만 운영진으로서 함께할 수 있는지를 확인하는 진짜 면접이었다. 면접은 21시 35분부터 15분 정도 웹엑스로 진행되었고 네 분의 기존 운영진분들이 면접관으로 계셨다. 질문은 8개 정도 있었는데 생각나는 질문 위주로 적어보려고 한다. 질문 지원서에 쓰지 않은 내용 중에 더 준비하신 말이 있으신가요? 하하.. 여기부터 당황했다. 지원서 내용 이외에 하고 ..

[기록] 2022.04.27

백준 6604번: Matrix Chain Multiplication

문제 [BOJ][C++] 백준 6604번: Matrix Chain Multiplication 문제는 링크를 클릭해서 볼 수 있다. 풀이 입력 및 저장 행렬의 개수 n을 입력 받고 이어서 n개의 행렬의 정보를 입력 받는다. 행렬의 정보는 행렬의 이름, 행의 개수, 열의 개수로 이루어져있다. 행과 열을 동시에 저장하기 위해 pair 자료형을 사용했고, 행렬의 이름으로 행렬의 정보를 접근하기 위해 unordered_map을 사용했다. unordered_map은 key의 hash 값으로 value에 접근할 수 있고 탐색 속도는 O(1)이다. 다음으로 예제 입력이 끝날 때까지 입력을 받기 위해 while (cin >> formula) 를 사용했다. string formula; while (cin >> formul..

[알고리즘] 2022.04.27