2025/01 28

C++[SOLID 원칙]

SOLID원칙이란?객체 지향 프로그래밍에서 소프트웨어 설계를 개선하기 위한 다섯 가지 기본 원칙을 나타낸다. 이 원칙들은 우리들의 선배님의 경험들이 녹아내려져있는 행동방침으로 코드의 유지보수성, 확장성, 재사용성을 높이는 데 도움을 준다. 아무래도 이건 응집도와 결합도에서 배운 내용과 유사한 부분이 있다.1. S - 단일 책임 원칙(SRP, Single Responsibility Principle)클래스는 하나의 책임만 가져야 하며, 그 책임을 완수하는 데 필요한 모든 기능을 포함해야 된다.2. O - 개방-폐쇄 원칙 (OCP, Open/Closed Principle)클래스, 모듈 등은 확장에는 열려있고 수정에는 닫혀있어야된다.기존 코드를 수정하지 않고도 새로운 기능을 추가할 수 있도록 인터페이스나 추..

C++/개념정리 2025.01.03

C++[응집도, 결합도]

응집도모듈이나 클래스의 구성 요소들이 얼마나 밀접하게 관련되어있는지를 나타내는 개념이다.응집도가 높을수록 모듈이나 클래스의 구성 요소들이 잘 결합되어있는것이며, 코드의 유지보수성과 이해도를 높인다.그렇다면 이 중요한 응집도를 높이기 위해 초보자인 사람도 초보자일 때 일수록 지키기 쉽고 간단한 기준들을 공부해볼 생각이다. 1.명확한 인터페이스 설계클래스의 인터페이스를 명확하게 정의. 클래스의 사용처를 정확히 인지.2. 의미 있는 이름 사용클래스, 메서드, 변수의 이름을 의미 있게 설정기능에 따라 보편적으로 사용되는 이름을 찾아보고 사용해서 익숙해지는것도 좋다.3. 데이터 은닉클래스 내부의 데이터를 private으로 설정해 보호하기저번에 배운 getter와 setter 등을 이용4. 작은 클래스와 메서드클래..

C++/개념정리 2025.01.03

C++[sort알고리즘]

sort 알고리즘이란?C++에서 제공하는 STL에 있는std::sort라는 명령어로 사용하는 오름차순 정렬 알고리즘이다.1. 배열 정렬int n = sizeof(arr) / sizeof(arr[0]);sizeof(arr)sizeof는 주어진 변수의 바이트 크기를 반환합니다. 만약 변수가 int형 배열이라면, sizeof는 전체 크기를 바이트 단위로 반환합니다. 위의 예시에서는 arr배열의 원소 개수가 5이고 각 int가 4바이트라면 5*4 = 20 이라는 숫자를 반환합니다sizeof(arr[0])arr[0]는 배열의 첫번째 요소를 참조하는기 때문에 sizeof(arr[0])은  arr의 첫번째 요소가 int형이고 위에서 4바이트로 계산을 했기 때문에 똑같이 계산을 하게된다면 sizeof(arr[0]) =..

C++/개념정리 2025.01.02

2024.01.02[집, 씻다, 뒤집어쓰다, 끼얹다, 기름, 밥]

家(いえ) : 집家 음독 : カ(가정, 가옥, 작가 등)家 : 집 가宀(집 면)와 豕(돼지 시)가 합쳐진 문자. 뜻은 집 면자에 거의 있다고 봐도 된다. 洗(あらう): 씻다洗 음독 : セン(세면, 세련, 세제 등)洗 : 씻을 세水(물 수)와 先(먼저 선)가 합쳐진 문자.  浴(あ)びる : 뒤집어 쓰다.浴 음독 : ヨク(목욕, 욕실, 입욕 등)浴 : 목욕할 욕水(물 수)와 谷(골 곡)가 합친문자.욕, 누명 등을 뒤집어 쓸때도 사용한다. 油(あぶら) : 기름油 음독 : ユ(경유, 석유, 윤활유 등)油 : 기름 유水(물 수)와 由(말미암을 유)가 합쳐진 문자. 飯(めし, いい, まま): 밥飯 음독 : ハン(백반, 소반, 반찬 등)飯 : 밥 반食(먹을 식, 밥 식)과 反(되돌릴 반)자가 합쳐진 문자.방송이나 미..

C++[Vector]

백터란?STL의 시퀀스 컨테이너 중 하나로, 동적 배열을 구현한 것이다. 주요 특징동적 크기 조정 - 요소를 추가하면 자동으로 메모리를 재할당하며 크기를 늘림.임의 접근 - 배열처럼 인덱스를 사용하여 요소에 빠르게 접근 가능하다.연속된 메모리 - vector는 메모리에 연속적으로 저장되기 때문에 캐시 효율성이 높음다양한 메서드 제공 - 요소 추가, 삭제, 정령, 검색 등 다양한 메서드(함수)를 제공한다.주요 메서드vector 이름; push_back(valeu) : vector의 끝에 요소를 추가한다.size() : 현재 vector에 저장된 요소의 개수 반환.at(index) : 인덱스에 있는 요소에 안전하게 접근할 수 있도록 해줌.(인덱스 유효성 검사)capacity()현재 할당된 메모리 용량을 반환..

C++/개념정리 2025.01.01

C++[STL]

SLTStandard Template Library의 약자로 C++에서 지원하는 템플릿 라이브러리다. STL은 데이터 구조와 알고리즘을 효율적으로 사용할 수 있도록 도와주는 다양한 구성 요소를 포함하고 있다.주요 구성 요소컨테이너(Containers):데이터를 저장하는 데 사용되는 클래스 템플릿.예: vector, list, map, set 등.알고리즘(Algorithms):컨테이너에 저장된 데이터를 처리하는 함수 템플릿.예: 정렬, 검색, 변환 등의 기능을 제공.이터레이터(Iterators):컨테이너의 요소에 접근하고 순회하는 방법을 제공하는 객체.포인터처럼 동작하며, 다양한 유형의 이터레이터가 존재.함수 객체(Function Objects):함수처럼 동작하는 객체로, 알고리즘에 전달할 수 있는 사용자..

C++/개념정리 2025.01.01

2025.1.1[조합]

조합이란?서로 다른 n개에서 순서를 생각하지 않고 r개를 뽑는 것을 n개에서 r개를 택하는 조합이라한다.예시) 순열에서 조합구하기[1,2,3,4 네 개의 카드중에서 세개를 택하는 방법의 수는?] 이라는 문제를 봤다고 하자 일단 이걸 나열하는 순열의 조합은? 직순열이기 때문에 이게 되지만. 나열을 하지 않았기 때문에 안에서 순서가 바뀌는것은 같은 경우로 본다.그렇다면 같은 수 끼리 순서만 바뀌는 경우의 수는 곱의 법칙에 의해 3!이기 때문에 3!을 나눠주면 된다.그러므로 정답은 4가 된다.nCr공식 서로 다른 n개에서 순서를 생각하지 않고 r개를 뽑는 것은, nPr의 직순열에서 순서끼리 바뀌는 방법을 빼주면 되기 때문에이런 공식이 된다.

2025.1.1[만나다, 열리다, 먹다, 보다, 자동차]

会(あ)う : 만나다会 : 모일 회会 음독 : カイ(회계, 회화, 사회, 교회 등)人(사람 인), 云(이룰 운)자가 합쳐진 문자다. 開(あ)ける : 열리다開 : 열 개開음독 : カイ(개시, 개척, 전개 등)門(문 문), 一(한 일, 그러나 여기선 빗장을 나타냄), 廾(받들 공)자가 합쳐진 문자로 문의 빗장을 들어올려 여는 모습을 나타낸다. 食(た)べる : 먹다食 : 밥 식食음독 : しょく(식사, 식품, 식당 등) 見(み)る : 보다見 : 볼 견見음독 : けん(견학, 견해, 소견 등) 車(くるま) : 차車 : 수레 차車 음독 :しゃ(자동차, 차륜 등)