728x90
반응형

알고리즘 107

[백준/BFS&DFS/C++] 9205번 맥주 마시면서 걸어가기

문제는 여기! #include using namespace std; int t, n; struct Point{ int x; int y; }; Point house, festival; Point cvs[101]; bool isvisited[101]; bool solve(){ queue q; q.push({house.x, house.y}); while(!q.empty()){ int x = q.front().first; int y = q.front().second; q.pop(); if(abs(x-festival.x) + abs(y-festival.y) n; cin >> house.x >> house.y; for(int c=0; c> cvs[c].x >> cvs[c].y; } cin >> festival.x ..

[백준/DP/C++] 1149번 RGB거리 *

문제는 여기! #include using namespace std; int N; int cost[3]; int house[1001][3]; void input() { cin >> N; for(int i=0; i> cost[0] >> cost[1] >> cost[2]; if(i==0){ house[0][0] = cost[0]; house[0][1] = cost[1]; house[0][2] = cost[2]; } else { house[i][0] = min(house[i-1][1], house[i-1][2]) + cost[0]; house[i][1] = min(house[i-1][0], house[i-1][2]) + cost[1]; house[i][2] = min(house[i-1][0], house[i-1..

[백준/DP/C++] 1463번 1로 만들기

문제는 여기! 문제 해결 방법 DP[n] : n을 만드는데 사용되는 연산의 최소 횟수 로 정하고 Dp{1] = 0,DP[2] = 1, DP[3] = 1, 나머지는 N으로 초기화를 했다. 그리고 n이 3으로 나누어 떨어지면 DP[n]과 DP[n/3]+1 의 최소값을 비교해서 DP[n]에 입력, n이 2로 나누어 떨어지면 DP[n]과 DP[n/2]+1 의 최소값을 비교해서 DP[n]에 입력, DP[n]과 DP[n-1]+1 의 최소값을 비교해서 DP[n]에 입력해서 문제를 해결했다. #include using namespace std; int N; int dp[1000001]; void solve(){ for(int i=4; i> N; fill(dp, dp+N+1, N); dp[1] = 0; dp[2] = 1..

[백준/구현/BFS&DFS/C++] 2573번 빙산

https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 문제 해결 방법 수도코드로 표현하면 아래처럼 표현할 수 있다. while(1){ if(빙하의 개수==0) break; 빙하 덩어리 수 세기(); if(빙하 덩어리수 > 1) break; else 빙하 녹이기(); } 그리고 크게 구현할 것은 아래 3가지 이다. 1. 빙하마다 바다에 둘러싸인 면의 수 구하기 2. 한번에 녹이기 3. 덩어리 수 세기 우선 입력받을 때 빙하는 queue에 넣어주었..

[백준/BFS&DFS/C++] 2468번 안전 영역

https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 전체 코드 #include using namespace std; int N; int MAP[101][101]; int minValue = 2e9, maxValue = 0; bool isVisited[101][101]; int dx[] = {-1, 0, 1, 0}; int dy[] = {0, 1, 0, -1}; void clearVisit(){ for(int i=0; i N; for(int i=0; i x..

[백준/BFS&DFS/C++] 17070번 파이프 옮기기1 * (삼성 코딩테스트)

https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net #include using namespace std; int N; int MAP[17][17]; int dx[] = {0, 1, 1}; int dy[] = {1, 0, 1}; int result = 0; bool chk(int r, int c){ if(rN || cN || MAP[r][c]==1) return false; else return true; } void dfs..

카테고리 없음 2023.02.03

[백준/구현/C++] 15685번 드래곤 커브 *

https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net #include #define MAX 101 using namespace std; int n, x, y, d, g; int MAP[MAX][MAX]; int dx[] = {0, -1, 0, 1}; // 오른쪽, 위, 왼쪽, 아래 int dy[] = {1, 0, -1, 0}; vector Dir_Info; void Make_Dragon_curve(){ int s = Dir..

728x90
반응형