본문 바로가기

분류 전체보기

(370)
[BOJ] 2665번 미로 만들기 (C++) https://www.acmicpc.net/problem/2665 2665번: 미로만들기 첫 줄에는 한 줄에 들어가는 방의 수 n(1 ≤ n ≤ 50)이 주어지고, 다음 n개의 줄의 각 줄마다 0과 1이 이루어진 길이가 n인 수열이 주어진다. 0은 검은 방, 1은 흰 방을 나타낸다. www.acmicpc.net #include #include #include using namespace std; int n; int arr[50][50]; int visited[50][50]; int dx[4] = {-1, 0, 0, 1}; int dy[4] = {0, -1, 1, 0}; void bfs(){ queue q; q.push({0, {0, 0}}); while(!q.empty()){ int cnt = q.fro..
[BOJ] 16927번 배열 돌리기 2 (C++) https://www.acmicpc.net/problem/16927 16927번: 배열 돌리기 2 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net #include #include using namespace std; int n, m, r; int arr[301][301]; void rotate(int start, int len){ int t = r % len; for(int i = 0; i < t; i++){ int tmp = arr[start][..
[BOJ] 16926번 배열 돌리기 (C++) https://www.acmicpc.net/problem/16926 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] www.acmicpc.net #include #include using namespace std; int n, m, r; int arr[301][301]; void rotate(){ int t = min(n, m) / 2; for(int i = 1; i > n >> m >> r; for(int i = 1; i arr[i][j]; }..
[BOJ] 7569번 토마토 (C++) https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net #include #include #include using namespace std; int m, n, h; int arr[100][100][100]; int dist[100][100][100]; queue q; int dx[6] = { 1, -1, 0, 0, 0, 0 }; int dy[6] = { 0, 0, -1, 1, 0, 0 }; int dz[6] = { 0, 0, 0..
[BOJ] 1374번 강의실 (C++) https://www.acmicpc.net/problem/1374 1374번: 강의실 첫째 줄에 강의의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 줄마다 세 개의 정수가 주어지는데, 순서대로 강의 번호, 강의 시작 시간, 강의 종료 시간을 의미한다. 강의 www.acmicpc.net #include #include #include #include using namespace std; int main() { int n; vector v; priority_queue pq; cin >> n; for(int i = 0; i > a >> b >> c; v.push_back({b, c}); } sort(v.begin(),..
[BOJ] 15681번 트리와 쿼리 (C++) https://www.acmicpc.net/problem/15681 15681번: 트리와 쿼리 트리의 정점의 수 N과 루트의 번호 R, 쿼리의 수 Q가 주어진다. (2 ≤ N ≤ 105, 1 ≤ R ≤ N, 1 ≤ Q ≤ 105) 이어 N-1줄에 걸쳐, U V의 형태로 트리에 속한 간선의 정보가 주어진다. (1 ≤ U, V ≤ N, U ≠ V) www.acmicpc.net #include #include #define MAX 100001 using namespace std; int dp[MAX]; vector vec[MAX]; bool visited[MAX]; void dfs(int node, int parent){ visited[node] = true; for(int i = 0; i < vec[node..
[BOJ] 1245번 농장 관리 (C++) https://www.acmicpc.net/problem/1245 1245번: 농장 관리 첫째 줄에 정수 N(1 < N ≤ 100), M(1 < M ≤ 70)이 주어진다. 둘째 줄부터 N+1번째 줄까지 각 줄마다 격자의 높이를 의미하는 M개의 정수가 입력된다. 격자의 높이는 500보다 작거나 같은 음이 아닌 정수 www.acmicpc.net #include using namespace std; int n, m; int arr[100][70]; int visited[100][70]; bool isPeak = true; int dx[8] = { -1, -1, -1, 0, 0, 1, 1, 1 }; int dy[8] = { -1, 0, 1, -1, 1, -1, 0, 1 }; void dfs(int x, int ..
[BOJ] 23793번 두 단계 최단 경로 1 (C++) https://www.acmicpc.net/problem/23793 23793번: 두 단계 최단 경로 1 서준이는 아빠로부터 생일선물로 세계 지도를 받아서 매우 기뻤다. 세계 지도에서 최단 경로를 찾는 프로그램을 개발해서 아빠께 감사의 마음을 전달하려고 한다. 세계 지도는 도시를 정점으 www.acmicpc.net #include #include #include #define INF 2e9 #define MAX 100001 #define MAX_EDGE 200001 using namespace std; int n, m, x, y, z; int d[MAX]; vector v[MAX_EDGE]; void dijkstra(int start){ for(int i = 0; i start_to_next_dis){ ..