목록전체 보기 (124)
서의 공간
[문제]: 1260번: DFS와 BFS (acmicpc.net) #include #include #include #include #include using namespace std; int N, M, V; vector graph[1002]; bool visBFS[1002]; bool visDFS[1002]; void BFS() { queue q; q.push(V); visBFS[V] = 1; while (!q.empty()) { int cur = q.front(); q.pop(); cout V; for (int i = 0; i > v >> e; graph[v].push_back(e); graph[e].push_back(v); } for (int i = 1; i
#include #include #include using namespace std; vector P; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int N; cin >> N; P.resize(N + 1); for (int i = 1; i > P[i]; sort(begin(P), end(P)); int ret = 0; int sum = 0; for (int i = 1; i < P.size(); ++i) { sum += P[i]; ret += sum; } cout
#include #include #include #include using namespace std; int 배추밭[52][52]; bool vis[52][52]; int dx[4] = { 1, 0, -1, 0 }; int dy[4] = { 0, -1, 0, 1 }; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int testCase; cin >> testCase; while (testCase--) { int M, N, K; cin >> M >> N >> K; for (int i = 0; i > X >> Y; 배추밭[X][Y] = 1; } // M: 가..
#include #include #include using namespace std; string operator+(string a, string b) { string ret; int n = 0, carry = 0; reverse(begin(a), end(a)); reverse(begin(b), end(b)); while (a.size() b.size()) b += '0'; for (size_t i = 0; i < a.size(); ++i) { n = ((a[i] - '0') + (b[i] - '0') + carry) % 10; ret += n + '0'; carry = ((a[i] - '0') + (b[i] - '0') + carr..
#include #include using namespace std; bool paper[130][130]; int w = 0, b = 0; void DQ(int y, int x, int size) { bool cur = paper[y][x]; for (int i = y; i < y + size; ++i) { for (int j = x; j < x + size; ++j) { if (paper[i][j] != cur) { DQ(y, x, size / 2); DQ(y + size / 2, x, size / 2); DQ(y, x + size / 2, size / 2); DQ(y + size / 2, x + size / 2, size / 2); return; } } } if (cur == 0) w++; else..
#include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); unordered_map hMap; int testCase; cin >> testCase; while (testCase--) { int n; cin >> n; for(int i = 0; i > name >> type; if (hMap.find(type) != end(hMap))// type이 이미 있다면 hMap[type]++; else hMap.insert({ type, 1 }); } int ret = 1;..
RasterTek - DirectX 10, DirectX 11, and DirectX 12 Tutorials 시간 되는 대로 하나씩 올릴 예정. 위 홈페이지에서 제공하는 튜토리얼과 상당수 다른 부분이 있다. Direct SDK를 사용하지 않으며 DirectX 11에서 오래되거나 개발 중지된 컴포넌트 대신 외부 라이브러리로 대체된다. 현재까지 대체되어 사용한 라이브러리는 다음과 같다. DirectXTex: 텍스처 관련 라이브러리 Assimp: 3D 모델링 관련 라이브러리 FMOD: 사운드 관련 라이브러리 다음 링크에서 모든 소스코드를 다운 받을 수 있다. Seoui/DirectX11_Rastertek (github.com)
std::find() template inline InputIterator find(InputIterator first, InputIterator last, const Tp val) { while(first != last && !(*first == val)) ++first; return first; } while문은 first == last 또는 *first == val 일 때 종료된다. 다음은 find 함수의 원형을 찾을 때 필요한 파츠 중 하나다. 위 while문의 조건 (*first == val) 부분을 나타낸다. 역시 보기 쉽게 편집했다. // predefined_ops.h template struct _Iter_equals_val { Value& mValue; explicit _Iter_equa..
1316번: 그룹 단어 체커 (acmicpc.net) #include #include #include using namespace std; // 연속이 끊긴 알파벳이 그 전에 등장했는지의 여부 // 예를 들어 aaabba에서 맨 뒤 a 위치에서 그 앞전에 a가 이미 등장했었는지를 알아야 함 bool presented[26]; bool Check(string& str) { bool ret = true; presented[str[0] - 'a'] = true; char cur = str[0]; for (size_t i = 1; i < str.length(); ++i) { if (cur != str[i]) { if (presented[str[i] - 'a']) {// 이미 등장했었다면 ret = false; ..
2941번: 크로아티아 알파벳 (acmicpc.net) 1. 첫 번째 방법 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); // 첫 번째 방법 string str; cin >> str; vector strs = { "c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z=" }; for (size_t i = 0; i < strs.size(); ++i) for (size_t pos = str.find(strs[i]); pos != string::npos; pos = str.find(strs[i])..