본문 바로가기

c++

(77)
연산자 오버로딩 1. 덧셈, 뺄셈, 곱셈 ex) 연산자 우선순위는 * / 먼저 인건 그대로 2. 입출력 연산자 ofstream 사용하기 - 헤더는 fstream 사용 - 실행 시 out.txt 생성하고 거기에 텍스트 삽입 3. 비교 연산자
Class - 3 1. Class 안에 static으로 멤버를 선언하면 그 멤버는 객체 여러개를 선언해도 동일 -> static 멤버는 class안에서 초기화 XX 2. 정적 멤버 함수 : static 멤버 function은 this를 활용한 접근 불가능 : class 내에 있는 함수는 모든 객체가 공유 3. 친구 함수 : private에 손쉽게 접근 - class 자체를 friend 처리 4. 익명 객체
Class 공부 2, +const Class 코드에 적용하기 간단한 예제로 적용시키자. calc.h calc.cpp 선언을 calc.cpp를 새로 만들어서 다 몰아 넣었다. 이렇게 굳이 안하고 calc.h에 정의도 함께 해도 상관없다. 2. class 객체도 const 가능 - set, get 둘다 불가능 - 가능하게 하려면 reuturn 함수에 const 붙여야됨 3. copy constructor : runnable에서 class를 인수로 받아서 쓸때, 복사는 해오지만, 이 copy constructor를 사용해서 복사본 생성해서 runnable 안에서 사용한다. 근데 사실 copy 하는게 메모리가 아깝기 때문에 class를 받아서 runnable에서 사용할때는 웬만하면 const reference 사용! 4. const 공부 참고)..
CLASS, Struct 공부 1 기초 빠르게 복습해버리기 1. struct 사실 회사에서는 struct 를 더 많이 쓴다. -> 근데 그렇다고 해서 void를 struct 안에 넣진 않음 2. class 추가: 같은 calss끼리는 private 변수 접근 가능 3. Constructor -> 헷갈렸었는데 굳 추가 초기화 4. Destructor : instance가 메모리에서 해제될때 내부에서 자동으로 호출 Destructor에서 동적 할당 된 array 지워줘서 메모리 leak 방지 -> 그냥 추가 공부 int *a =nullptr; int length = 3; a = new int[length];
백준 2579 : 계단 오르기 C++ www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 풀이 1. 우선 계단 3개 연속해서 못밟으니까 이전꺼랑 비교할때 이런 조건을 넣어야됨 max( 지금 직전+ 지금 3번째 전, 지금 2번째 전) 2. 그렇기 때문에 당연히 dp 초기화도 0 1 2 이렇게 3개 해줘야된다. #include #include using namespace std; int step[301]; int dp[301]; int main() { int x; cin >> x; for (int i = 0; i ..
프로그래머스 : 이중우선순위 큐 C++ programmers.co.kr/learn/courses/30/lessons/42628 코딩테스트 연습 - 이중우선순위큐 programmers.co.kr 풀이 및 후기 1. 처음에 걍 벡터로 하면된다는 생각이 안떠올라서 우선순위 큐 써서 막 하고 그랬는데 걍 이 방법이 짱이다~ 2. 삽입할때 마다 벡터를 sort해버리면 됨!! #include #include #include #include using namespace std; vector solution(vector operations) { vector answer; string data; int value; vector end; for(int i=0;i
백준 : 다리 만들기 2 c++ www.acmicpc.net/problem/17472 17472번: 다리 만들기 2 첫째 줄에 지도의 세로 크기 N과 가로 크기 M이 주어진다. 둘째 줄부터 N개의 줄에 지도의 정보가 주어진다. 각 줄은 M개의 수로 이루어져 있으며, 수는 0 또는 1이다. 0은 바다, 1은 땅을 의미한다. www.acmicpc.net 풀이 1. 섬들을 2번부터 시작해서 라벨링 한다!! -> bfs 이용 2. 이제 각 섬에서 다른 섬까지 연결 가능한 모든 다리 생성 후 vector에 저장 -> 길이가 2 이상이여야됨!! -> 두개의 섬 라벨과 다리 길이 value로 이루어진 struct로 관리 3. 길이 작은 순으로 sort 후 크루스칼 4. 모든 섬이 연결이 안됬으면 -1 출력 #include #include #incl..
백준 : 기타줄 C++ www.acmicpc.net/problem/1049 1049번: 기타줄 첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주 www.acmicpc.net 풀이 및 후기 1. 어려운 문제는 아닌데 이거 신경쓰는걸 까먹으면 안된다 -> 남은 낱개들을 전부 낱개로 사는거보다 그냥 세트가 더 싸면 세트로 사야됨! #include #include #include using namespace std; int main() { int n, m; int set, one; int answer = 0; int min_set = 1000; int min_one = 1000; //..