목록PS (135)
정화 코딩

https://www.acmicpc.net/problem/14502 #include #include #include using namespace std;int n, m, ans;vector> a;int dx[] = {1, -1, 0, 0};int dy[] = {0, 0, 1, -1};int bfs() { queue> q; vector> vst(n, vector(m, 0)); for (int i = 0; i = 0 && nxti = 0 && nxtj > n >> m; a = vector>(n, vector(m)); for (int i = 0; i > a[i][j]; } } dfs(0, 0, -1); cout 백트래킹으로 3개의 벽을 놓는 모든 경우를 ..

https://www.acmicpc.net/problem/2622 #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; int ans = 0; // i k) ans++; } } cout 첨에는 합동이 뭔지 살짝 헷갈렸다. 생각해보니 3개의 변의 길이가 모두 같으면 SSS 합동으로, 어떻게 조합해도 하나의 삼각형으로 본다.즉, i // i k) ans++; } }아 처음에는 위 코드처럼 k 시간 단축! 참고: 삼각형의 합동 조건

https://www.acmicpc.net/problem/16236 #include #include #include #include using namespace std;int n, curs, cnt, time;vector> m;int dx[] = {1, -1, 0, 0};int dy[] = {0, 0, 1, -1};vector targetf(int si, int sj) { vector> vst(n, vector(n, -1)); queue> q; vector> fish; q.emplace(si, sj); vst[si][sj] = 0; while (!q.empty()) { int curi = q.front().first; int curj = q.fro..

https://www.acmicpc.net/problem/30823 처음에는 그냥 진짜 문제 지문 그대로 구현했더니 시간 초과를 받아서 대충 이런식으로... 몇개 해보면서 규칙을 찾았다. 규칙을 정리하면 다음과 같다.뒤의 (n - k + 1)개의 문자들을 순서를 유지하고 그대로 앞으로 나온다.앞의 (k - 1)개의 문자들은 뒤로 가는데, 이 순서는 주의가 필요하다. n + k가 홀수면 순서를 유지하고 그대로 붙고, 짝수면 뒤집힌 순서로 붙는다. #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k; cin >> n >> k; string ..

https://www.acmicpc.net/problem/15686 일단 모든 집과 모든 치킨집의 쌍에 대해서 거리를 구하기 위해서 집의 개수만큼 bfs를 돌렸다. (근데 생각해보니 bfs 쓸 필요 없이 좌표만 빼서 거리를 구할 수 있다.)그 결과(모든 집과 모든 치킨집의 쌍에 대한 거리)를 sp 배열에 담아두었다.그 후, 백트래킹으로 가능한 모든 치킨집 조합에 대해서 도시의 치킨 거리를 계산한다. 그 중 가장 최소인 값을 출력하면 된다. #include #include #include using namespace std;int dx[] = {1, -1, 0, 0};int dy[] = {0, 0, 1, -1};int n, m, hn, cn;int ans = 1000000;vector cchk;vector..

https://www.acmicpc.net/problem/2331 #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int a, p; cin >> a >> p; vector ans; ans.push_back(a); int idx = -1; int cur = a; while (1) { int nxt = 0; while (cur > 0) { int rem = cur % 10; int tmp = 1; for (int i = 0; i 단순..

https://www.acmicpc.net/problem/1111 #include #include #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; vector arr(n); for (int i = 0; i > arr[i]; set ans; for (int a = -200; a 2) cout 무지성으로 모든 a, b 조합을 체크해서 풀었다...처음에는 a와 b 범위 모두 -100 ~ 100으로 잡았다가 WA를 받았다. 그 후 범위가 부족함을 깨닫고 범위를 늘려줬다. 무지성으로 너무 늘리면 또 시간초과를 ..

https://www.acmicpc.net/problem/25709 #include using namespace std;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; cin >> n; int ans = 0; string s = to_string(n); string tmps = ""; for (char c: s) { if (c == '1') ans++; else tmps += c; } if (tmps.empty()) n = 0; else n = stoi(tmps); while (n > 0) { int tmp = n..