C 프로그래밍
-
[백준 1655] 가운데를 말해요C 프로그래밍/BOJ 2022. 9. 15. 19:38
https://www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net #include #include int N; using namespace std; priority_queue PQ_small; // 작은 수들의 집합 priority_queue PQ_big;// 큰 수들의 집합 void add_num(int n) { if (PQ_small.empty() || PQ_small.top() > n) {//작은 수 들의 집합 중 가장 큰 수가 항상 중앙값..
-
[백준 17141] 연구소 2C 프로그래밍/BOJ 2022. 9. 15. 01:10
++22.11.10 갱신 https://www.acmicpc.net/problem/17141 17141번: 연구소 2 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 승원이는 연구소의 특정 위치에 바이러스 M개를 놓을 것이고, 승원이의 신호와 동시에 바이 www.acmicpc.net #include #include #include int N, M;//50 * 50맵, 최대 10개 int board[50 + 2][50 + 2]; int ans = 0x7fffffff; int wall; int zeros; struct _st { int x, y; }; std::vector V; int v_cnt; int choice[10 + 2]; struct _qt { int ..
-
[백준 7576, 7569] 토마토C 프로그래밍/BOJ 2022. 9. 14. 22:32
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 이전에 짰던 코드는 다음과 같다. 더보기 #include #include #include int M, N; int box[1000 + 10][1000 + 10]; int visited[1000 + 10][1000 + 10]; int cnt; int no_tomato; int min_day; struct _st { int x; int y; int d; }; std::queue Q; ..
-
[백준 16234] 인구이동C 프로그래밍/BOJ 2022. 9. 14. 20:22
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net #include #include #include #include #include int N, L, R; int terr[50 + 2][50 + 2]; struct _st { int x; int y; }; int visited[50 + 2][50 + 2];// 방문 표시할 배열 int days; int still_union; void input(void) { scanf("%d %d %..
-
[백준 9207] 페그 솔리테어C 프로그래밍/BOJ 2022. 9. 13. 22:31
https://www.acmicpc.net/problem/9207 9207번: 페그 솔리테어 각 테스트 케이스에 대해서, 핀을 움직여서 남길 수 있는 핀의 최소 개수와 그 개수를 만들기 위해 필요한 최소 이동 횟수를 출력한다. www.acmicpc.net #include #include int N;// 테케 수 char board[5 + 2][9 + 2]; int min_cnt; int pin_cnt; int dir_x[4] = { 0, 0, 1, -1 }; int dir_y[4] = { 1, -1, 0, 0 }; void init(void)// 테케 여러개 이므로 맵과 각 변수들 초기화 필요 { for (int i = 0; i < 5; i++) { std::fill(board[i], board[i] +..
-
[백준 9663] N-QueenC 프로그래밍/BOJ 2022. 9. 13. 20:34
https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net #include int N; int cnt; int flag_col[15 + 2]; int flag_RD[30 + 2]; int flag_LD[30 + 2]; int chk(int r, int c) { if (flag_col[c]) return false;// 만약 해당 열에 이미 퀸이 있다면 false 리턴 if (flag_LD[r - c + (N - 1)]) return false;// 왼쪽 대각선 위에 퀸이..
-
[백준 16928] 뱀과 사다리 게임C 프로그래밍/BOJ 2022. 9. 11. 12:15
https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net #include #include int N, M; int visited[100 + 2]; int Move[100 + 2]; void input() { scanf("%d %d", &N, &M); for (int i = 0; i < N + M; i++) { int s = 0, e = 0; scanf("%d %d", &s, &e); Move[s] = e; ..
-
[백준 13913] 숨바꼭질 4C 프로그래밍/BOJ 2022. 9. 9. 15:56
https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net #include #include int N, K; struct _st { int X; int t; }; std::queue Q; int chk[100000 + 10]; int path[100000 + 10]; void init(void) { for (int i = 0; i 100000) continue; if (chk[nx] 18 -> 9 -> 10 - > 5 이..