[백준 9663] N-Queen
·
Programming/PS
문제https://www.acmicpc.net/problem/9663 해당 문제에 대한 풀이는 다음 블로그 글을 참고함https://blog.encrypted.gg/945 [실전 알고리즘] 0x0C강 - 백트래킹이번에는 백트래킹을 배워보도록 하겠습니다. 백트래킹도 재귀와 더불어 많은 사람들이 고통을 호소하는 알고리즘 중 하나이지만 의외로 그 재귀적인 구조에 매료되어서 참재미를 알아버리는blog.encrypted.gg 백트래킹과 브루트 포스를 이용하는 문제다.코드// 위아래, 대각선에 대해 isUsed 배열 3개를 사용// isUsed_vertical: 같은 열에 퀸이 있는지 여부// isUsed_leftDown_rightUp: 왼쪽 아래-오른쪽 위 대각선 상에 퀸이 있는지 여부// isUsed_leftU..
[백준 1697] 숨바꼭질
·
Programming/PS
문제https://www.acmicpc.net/problem/1697코드// 첫 번째 풀이// for + switch문 사용#include using namespace std;int N, K;queue q;int line[100001]; // 이동 거리를 저장할 배열void LineBFS() { while (!q.empty()) { auto x = q.front(); q.pop(); // X-1, X+1, 2*X 모두 범위, 이미 방문한 곳인지, K와 같은 지 확인 for (int i = 0; i = 100001) break; // 범위 벗어나면 if (line[x - 1] != -1) break; // 이미 방문했으면 line[x - 1] = line[x] + 1; q.pus..
[백준 1012] 유기농 배추
·
Programming/PS
문제https://www.acmicpc.net/problem/1012코드#include using namespace std;int matrix[50][50];int T, M, N, K, X, Y;int cnt = 0;queue> q;int dy[4] = { -1, 1, 0, 0 };int dx[4] = { 0, 0, -1, 1 };void BFS() { while (!q.empty()) { pair front = q.front(); q.pop(); for (int i = 0; i = M || newY = N) continue; if (matrix[newY][newX] != 1) continue; matrix[newY][newX] = 0; // 방문 처리 q.push(make_pair(new..
[백준 1874] 스택 수열
·
Programming/PS
입출력 속도 때문에 하루 종일 푼 문제입출력 속도에 대한 내용은 여기에서 볼 수 있다.2024.07.31 - [Programming/C++] - C++ 입출력 속도 높이기 C++ 입출력 속도 높이기파이썬으로 알고리즘 문제를 풀기 시작해서 얼마 안 돼 C++로 전환했는데, 이상하게 시간 초과가 뜨는 문제가 많이 보였다. 간단한 문제임에도 계속 시간 초과가 나서 하루 종일 해결을 못 했는kkj4818.tistory.com 문제https://www.acmicpc.net/problem/1874코드// 처음에 푼 풀이// 코드가 난잡함#include #include using namespace std;int main(){ ios::sync_with_stdio(false); cin.tie(NULL); cout.ti..
snwdaaa
'Programming/PS' 카테고리의 글 목록