본문 바로가기

전체 글265

백준(BOJ) 4096 팰린드로미터 ** 팰린드롬 문제를 살짝 응용한 문제이다. 중간중간에 수 연산과정에 생기는 오류를 조심하자 팰린드롬을 간단하게 설명하면 숫자가 좌우 대칭인 숫자를 말한다. 예를들어 121 1221 10001등 좌우대칭인 수를 의미한다. #include #include #include #include #include #include #include #include #include #define MAX 100005 #define INF 987654321 #define MOD 1000000007 #pragma warning(disable:4996) using namespace std; int n; char str[10]; int fun(int cur) { int tmp=0; if(str[cur-1]>=str[strlen(str).. 2018. 6. 1.
백준(BOJ) 14502번 연구소 * 오랜만에 시작한 알고리즘 첫 문제~ 1. 배열의 크기가 작다보니 모든 3개의 벽을 놓는 모든 경우의 수를 확인 2. DFS를 이용하여 바이러스를 퍼지게 한다. 3. 안전한 공간의 개수를 확인한다. 실수 했던 부분 3개의 벽은 반드시 놓아야 한다. 즉, 바이러스가 없는 경우에도 3개의 벽은 놓아야한다.(80퍼 쯤에서 에러 발생) * : 기본적인 DFS 이고 모든 경우의 수를 확인 하면 된다는 점에서 쉽게 풀 수 있을것 같다. #include #include #include using namespace std; int map[10][10],ori[10][10],x,y,mx=0,tmp=0,dx[4] = { -1,0,1,0 },dy[4] = { 0,-1,0,1 }; void dfs(int y, int x) { .. 2018. 6. 1.
백준(BOJ) 2931 가스관 ** 이 문제를 푸는데 필요한 개념은 BFS와 DFS 인 것 같다. 아이디어는 각 칸에 4개의 방향에 대해서 연결이 되어있으면 1로 저장한다. ex ) +의 경우 -> {1,1,1,1} -의 경우 -> {0,1,0,1} 1의 경우 -> {0,1,1,0} 이 후 bfs를 통해 탐색하는데 1로 되어있음에도 그 다음 칸이 0으로 되어있다면 그 칸이 바로 지워진 칸이 된다. 지워진 칸을 찾은 뒤 그 칸에 4방향에서 연결된 가스관의 위치를 확인하여 정답을 출력해 주면 된다. ...코드가 좀 지저분 한거 같다..#include #include #include #include #include #include #include #include #include #include #include #define MAX 205 #de.. 2018. 6. 1.
백준(BOJ) 1865 웜홀 ** 벨 만 포드 방식을 알고 있다면 쉽게 풀 수 있는 문제이다. 내가 실 수 했던 점은 "만약에 시간이 줄어들면서 출발 위치로 돌아오는 것이 가능" 을 "음수의 값을 가지는 노드가 있으면 가지면 YES"로 이해했다. "모든 웜홀의 정보 S의 노드가 음수의 값을 가지면 YES"가 맞다. #include #include #include #include #include #include #include #include #include #define MAX 40005 #define MOD 1000000007 #pragma warning(disable:4996) using namespace std; int t,n,m,w,a,b,c; int map[505][505],cur[505]; bool tf[505]; vector.. 2018. 6. 1.