분류 전체보기 156

2024.01.29 C++ 언어 공부 4일 차

오늘 학원 수업에서는 [ 클래스 ] 에 대해 실습을 먼저 해보았다. 문제는 이렇게 대강 주어졌는데 내가 이해한 것과 풀이를 보고나서 정답 풀이랑은 조금 달랐다. ※ 기본 생성자를 통해 입력을 받기 전, 안에 들어갈 값이 무엇인지 모르기 때문에 공간만 할당해준 것이고 그 아래에 초기 생성자를 통해 입력받은 값을 넣어주기! (동적할당 개념과는 다른 개념이다.) >>> 추가적 공부가 필요함 ㅠ__ㅠ 참고 자료 : [C++ 기본 공부정리] 14-4. OOP - 생성자(constructor) (tistory.com) [C++ 기본 공부정리] 14-4. OOP - 생성자(constructor) 공부 내용을 정리하는 목적 이므로 참고용으로만 읽어 주시기 바랍니다. 틀린 부분에 대한 지적은 감사합니다. 1. 생성자(c..

2024.01.28 C++ 추가 공부 [얕은 복사, 깊은 복사]

깊은 복사와 얕은 복사 객체는 다른 객체를 참조할 수 있는데 이럴 경우에 깊은 복사인가, 얕은 복사인가에 따라 결과값이 달라질 수 있으니 주의해야 한다. 복사를 한다는 것은 기존 객체와 같은 값은 가진 새로운 객체로 만드는 것이다. ※ 근데! 객체들은 멤버를 가지고 있고 그 멤버들은 값일 수도 있고, 참조 형식일 수도 있다. [ 참고 ] 모든 데이터 타입은 값 타입(value type) 또는 참조 타입(reference type)을 가진다. 값 타입(Value type) : 각각의 고유의 메모리를 소유한다. 스위프트에서 struct, enum, array, tuples 들이 해당 타입에 속한다. 참조 타입(Reference type) : 생성된 인스턴스들은 주소값을 공유한다. 스위프트에서 class가 해..

2024.01.26 C++ 언어 공부 3일 차

★ cin.ignore(); 개행 문자가 남아있기에 버퍼를 비워주도록 하자. 특정 객체를 읽으려고 했지만 못 읽을 때, 건너뛰고 싶을 때 사용한다. 파일 끝에 도달하거나 지정한 수만큼 문자를 버리면 멈춘다. cin.ignore(); : 문자 1개를 버린다. cin.ignore(10); : 문자 10개를 버린다. cin.ignore(10, '\n'); : 문자 10개를 버린다. 단, 그 전에 뉴라인(new line) 문자를 버리면 곧바로 멈춘다. cin.ignore(LLONG_MAX, '\n'); : 최대 문자 수를 버린다. 단, 그전에 뉴라인 문자를 버리면 곧바로 멈춘다. cin 과 getline 을 같이 사용할 때 cin.ignore()이 필요한 이유 제대로된 이해 cin은 '\n'를 변수에 담지 않는..

2024.01.25 C++ 언어 공부 2일 차

namespace (C++에만 있는 문법) 프로그램에서 자주 사용하는 명칭이 있다면 using 키워드를 먼저 선언한 후 생략하는 것이 좋다. namespace는 C++의 각종 요소들(변수, 함수, 클래스 등등)을 한 범주로 묶어주기 위한 문법이다. [포인터 개념 간략하게] 포인터 → 주소 int age = 22; 라고 선언하면 RAM안에 age라는 변수 안에 22가 담긴다. int* ptr = &age; 라고 선언하면 age변수의 주소지가 ptr에 담긴다. ※ ptr에 다른변수 num을 넣으면 주소지가 수정될 수 있다. 포인터 또한 주소를 담는 변수이기 때문이다. new, delete (C개념으로 따지면, '동적할당 및 해제') C의 malloc, free 에 대응되는 C++의 메모리 할당 연산자. 프로..

2024.01.24 판다스 공부 1일차

01 판다스 실습 환경 준비하기 01-1 아나콘다 설치하기 아나콘다 (설치) : 판다스를 비롯하여 데이터 분석에 필요한 파이썬 라이브러리와 도구를 한데 모은 일종의 파이썬 종합 선물 세트와 같음 https://www.anaconda.com/download Free Download | Anaconda Anaconda's open-source Distribution is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 참고 : 파이썬 삭제 아나콘다 Anaconda 설치 방법 : 네이버 블로그 (naver.c..

2024.01.24 C++ 언어 공부 1일 차

Visual Studio 2022 다운로드 설치 파일 -> C++ 을 사용한 데스크톱 개발 체크 -> 설치 시작 C++ 언어? 덴마크의 컴퓨터 과학자 비야네 스트로스트룹(Bjarne Stroustrup)가 C언어를 바탕으로 만들었다. 1979년에 C언어에서 직접적으로 파생된 C with Classes라는 이름의 언어로 시작되었다가, 1983년에 지금의 이름을 갖게 되었다. 그리고 객체지향 및 일반화 프로그래밍과 같은 멀티 패러다임을 지원하는 프로그래밍 언어 이다. C언어에서 ++라는 것은 원래 값에 1을 더해서 대입하라는 뜻이다. C는 B 언어를 계승한다는 의미에서 C가 되었는데 왜 D가 아니라 C++가 되었냐 하면, C 언어를 거의 그대로 두고 필요한 만큼만 향상시켰기 때문이라고 한다. [출처] C++..

2024.01.19 C언어 자료구조 <연결 자료구조와 연결 리스트 (1)>

Ch4 연결 자료구조와 연결 리스트 학습목표 연결 자료구조를 이해한다. 순차 자료구조와 연결 자료구조의 차이점과 장단점을 알아본다. 연결 리스트의 종류와 특징을 알아본다. 연결 자료구조를 이용한 다항식의 덧셈 연산 방법을 알아본다. 내용 연결 자료구조와 연결 리스트의 이해 단순 연결 리스트 원형 연결 리스트 이중 연결 리스트 연결 리스트의 응용 및 구현 수천 페이지가 넘는 문서를 순서대로 묶어서 정리하는 것이 가능할까? 몇 백개의 자료 중 특정 자료를 고를 때 혹은 삭제할 때 순서대로 하는 것이 과연 효율적일까? 정답은 아니다. 양이 많다면 고정해서 순서대로 찾는 것이 아닌 웹 페이지처럼 하이퍼링크를 클릭하여 확장하는 구조를 쓰는 편이 효율적이다. 이렇게 링크를 통해 확장 가능한 문서를 하이퍼 문서라고 ..

2024.01.18 C언어 <메모리 동적할당 (3)>

학습목표 : 정수 하나를 저장하기 위해 동적 할당하는 것은 변수 선언보다 실행 시간이나 메모리 활용면에서 비효율적이다. 따라서 동적 할당은 활용 방법을 익히는 것이 무엇보다 중요하다. 입력하는 문자열의 길이에 딱 맞는 메모리 공간을 확보할 수 있다. 명령행 인수의 구현 방식을 이해할 수 있다. 동적 할당 방식이 복잡할수록 할당 영역의 반환을 꼼꼼히 살펴봐야 한다. 동적 할당을 사용하면 데이터 맞춤 프로그래밍이 가능하다. 구분 설명 상세 입력 문자열 처리 사용 예 입력 문자열의 길이에 맞는 저장 공간 확보 구현 방법 char str[80]; char* ps; ps = (char*) malloc (strlen(str) + 1); strcpy( (ps, str) ); 명령행 인수 처리 main 함수의 인수 i..