C++
C++ auto 타입 추론
auto 키워드는 선언된 변수의 초기화 식을 사용하여 해당 형식을 추론하도록 컴파일러에 지시한다. 즉, auto 키워드를 사용하면 초깃값의 형식에 맟춰 선언하는 인스턴스(변수)의 형식이 '자동'으로 결정된다 (타입 추론(type inference)). 이 기능은 생성 시 변수를 초기화할 때만 작동한다. 아래는 int형 변수 a와 float형 변수 b의 합을 auto키워드를 통해 sum변수에 저장하고 출력한 것이다. #include using namespace std; int main() { int a = 5; float b = 3.5; auto sum = a + b; cout
C++ mutable
원래대로라면 const로 멤버 함수가 상수화되면 이 함수는 멤버 변수를 변경시키지 못한다. 그러나 멤버 변수가 mutable로 선언되어 있다면 상수화된 멤버 함수라도 멤버 변수 변경이 가능해진다. class AAA { mutable int val; public: void setValue(int _val) const { val = _val; } }; setValue는 상수화된 멤버 함수이므로 원래대로라면 멤버 변수 val을 변경할 수 없지만 val 이 mutable로 선언되었으므로 값 수정이 가능하다. 출처 : https://cpp11.tistory.com/35
C++ 클래스 배열 포인터 및 2차원 배열 포인터
클래스 포인터 배열은 아래와 같다. #include #include #define SIZE 3 using namespace std; class A { int mVal = 0; public: // 생성자 A() { cout
[골4] 15683 - 감시
https://github.com/encrypted-def/BOJ/blob/master/15683.cpp 아래는 내 코드다 cctv가 1일 때에 대비해서 풀지 못했다. #include #include #include using namespace std; using IntPair = pair; #define MAX_SIZE 100 #define y first #define x second int map[MAX_SIZE][MAX_SIZE]{ 0 }; int tmpMap[MAX_SIZE][MAX_SIZE]{ 0 }; int h, w; // CCTV 위치 저장용도 vector vC; // 다음 위치 시계 방향 IntPair pos[] { { 1, 0 }, // 북 { 0, 1 }, // 서 {-1, 0 }, /..
[골5] 9663 - N-Queen
#include using namespace std; int n, answer = 0; int vis[15]{ 0 }; // 유망한지 체크 bool Check(int cnt) { for (int i = 0; i < cnt; i++) { auto vis1 = vis[cnt], vis2 = vis[i]; if (vis1 == vis2 || cnt - i == abs(vis1 - vis2)) return 0; } return 1; } void BackTracking(int cnt) { if (cnt == n) { answer++; return; } for (int i = 0; i < n; i++) { vis[cnt] = i; if (Check(cnt)) BackTracking(cnt + 1); } } int ..
C++ 간단하게 사용할 수 있는 포인터 해제 매크로 함수
#include using namespace std; #define SAFETY_CHECK(ptr) \ { \ if (ptr == nullptr) \ { \ cout
[실3] 1966 - 프린터 큐
#include #include #include #include using namespace std; #define y front().first #define x front().second int main() { ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); int tc; cin >> tc; for (int i = 0; i > t >> f; queue q; priority_queue pq; for (int j = 0; j > val; q.push({ j,val }); pq.push(val); } ..
[실3] 1021 - 회전하는 큐
#include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); int s, n, cnt = 0; cin >> s >> n; deque dq; for (int i = 1; i > num; for (int i = 0; i < s; i++) { if (dq[i] == num) { idx = i; break; } } for (int i = 0; i < dq.size(); i++) { if (dq.front() == num) { dq.pop_front(); break; } if (idx < dq.size() / 2 + 1) { dq.push_back(dq..
[골5] 2023 - 신기한 소수
#include #include #include #include using namespace std; int n = 0; bool Prime(int num) { for (int i = 2; i * i
[골2] 10800 - 컬러볼
#include #include #include #include using namespace std; struct sColorBall { int n, color, size; sColorBall() = default; sColorBall(int n, int color, int size):n(n),color(color),size(size) { } }; int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; vector vecBall(n); for (int i = 0; i > vecBall[i].color >> vecBall[i].size; } sort(vecB..