개발(Dev) 이야기/Algorithm

    [C++] scanf 와 cin 수행속도 차이

    일반적으로 C++을 사용하면서 cin 표준입출력을 많이 사용했었다. 허나 다음과 같은 문제로 인해 scanf와 cin의 입출력 시간차이에 대해서 알게되었다. //토마토_7576.cpp -시간초과 뜸 #include #include using namespace std; int inf[1001][1001]; int check[1001][1001]; int result = 0; int m, n; int dx[] = { 0,0,1,-1 }; int dy[] = { 1,-1,0,0 }; void bfs(int x, int y) { queue q; q.push(make_pair(x, y)); while (!q.empty()) { x = q.front().first; y = q.front().second; q.pop..

    [BOJ] 미로탐색_2178

    #define _CRT_SECURE_NO_WARNINGS #pragma warning(disable:4996) #include #include #include #include using namespace std; int map[1001][1001]; int check[1001][1001]; int cnt = 1; int dx[] = { 0,0,1,-1 }; int dy[] = { 1,-1,0,0 }; int n, m; int result = 0; void bfs(int x, int y) { queue q; q.push(make_pair(x, y)); check[x][y] = 1; while (!q.empty()) { x = q.front().first; y = q.front().second; q.pop(..

    [BOJ] BFS, DFS 구현 방법

    BFS 함수 구현 방법 void bfs(int start) { queue q; memset(check, false, sizeof(check)); check[start] = true; q.push(start); while (!q.empty()) { int node = q.front(); q.pop(); cout

    [BOJ] 카잉달력_6064.cpp

    1차 시도 #include #include using namespace std; int main() { int t; cin >> t; vector m(t); vector n(t); vector x(t); vector y(t); vector k(t); for (int i = 0; i > m[i] >> n[i] >> x[i] >> y[i]; } for (int i = 0; i < t; i++) { int cnt = 1; while (true) { if (m[i] < n[i]) { if ((m[i] * (cnt + 1) + x[i]) == (n[i] * cnt + y[i])) { k[i] = m[i] * (cnt + 1) + x[i]; break; } } else if (m[i]..

    [BOJ] 리모컨_1107.cpp

    //리모컨_1107.cpp - success #include using namespace std; bool broke[10]; int possible(int c) { if (c == 0) { return broke[0] ? 0 : 1; } int len = 0; while (c > 0) { if (broke[c % 10]) return 0; len += 1; c /= 10; } return len; } int main() { int n, m, N; cin >> n >> m; int key; for (int i = 0; i > key; broke[key] = true; } int ans = abs(n - 100); for (int i = 0; i 0) { int press =..

    [BOJ] N과M(6)_15655.cpp

    //15655_N과M(6).cpp - success #include #include #include using namespace std; bool check[10]; int num[10]; void solve(vector & buf, int idx, int start, int n, int m) { if (idx == m) { for (int i = 0; i m; vector buf(n); for (int i = 0; i > buf[i]; } sort(buf.begin(), buf.end()); solve(buf, 0, 0, n, m); return 0; }

    [BOJ] N과M(5)_15654.cpp

    //N과M(5)_15654.cpp - success #include #include #include using namespace std; bool check[10]; int num[10]; void solve(int idx, vector & buf, int n, int m) { if (idx == m) { for (int i = 0; i m; vector buf(n); for (int i = 0; i > buf[i]; } sort(buf.begin(), buf.end()); solve(0, buf, n, m); return 0; }

    [BOJ] N과M(4)_15652.cpp

    //15652_N과M(4).cpp - success #include using namespace std; bool check[10]; int num[10]; void solve(int idx, int start, int n, int m) { if (idx == m) { for (int i = 0; i < m; i++) { cout M; solve(0, 1, N, M); return 0; }

    [BOJ] N과M(3)_15651.cpp

    //15649_N과M(3).cpp - success #include using namespace std; bool check[10]; int a[10]; void solve(int idx, int n, int m) { if (idx == m) { for (int i = 0; i < m; i++) { cout M; solve(0, N, M); return 0; }

    [BOJ] N과M(2)_15650.cpp

    //15650_N과M(2).cpp - success #include using namespace std; bool check[10]; int num[10]; void solve(int idx, int start, int n, int m) { if (idx == m) { for (int i = 0; i < m; i++) { cout M; solve(0, 1, N, M); return 0; }