목록알고리즘 문제 (164)
Muscardinus
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ckjaY7/btqG6fCHpil/0NssPz9BMyPejZf9aOkySK/img.jpg)
https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크� www.acmicpc.net #include #include #include #include #include using namespace std; int check[81]; vector Empty; vector Virus; int visit[9][9]; int board[9][9]; int copyBoard[9][9]; int n, m; int answer = 0; int dx[] = { 0,0,1,-1 }; int d..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bmvK0P/btqG9AS6btF/k6PtQL0AcVjssP5nQa0fs1/img.jpg)
https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변� www.acmicpc.net #include using namespace std; int n, m; int map[503][503]; const char block[19][4][5] = { { "1111", "0000", "0000", "0000" }, { "1000", "1000", "1000", "1000" }, { "1100", "1100", "0000", "0000" }, { "1000", "1000", "1100"..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/birKYy/btqG4b7Ehz3/yxDlcOnpE1k5KYiJrjymFk/img.jpg)
https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net #include using namespace std; int n, m, sx, sy, k; int dice[6]; int ndice[6]; int map[20][20]; int dy[] = { 0,0,-1,1 }; //동서북남 int dx[] = { 1,-1,0,0 }; void move_dice(int dir) { switch (..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/MzyG5/btqGUd6EV0f/VYVdMSCO3zwGhLsyzUhNFK/img.jpg)
https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net #include using namespace std; int n, b, c; int p[1000001]; int main() { ios_base::sync_with_stdio(false); cin >> n; for (int i = 0; i > p[i]; } cin >> b >> c; long long cnt =..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bJ2Cn6/btqGK3i4aqX/IENdPIBkPUwhM89qs3o8q0/img.jpg)
https://www.acmicpc.net/problem/3190 3190번: 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. www.acmicpc.net #include using namespace std; int map[101][101]; int snake_y[10101], snake_x[10101]; char cmd[10001]; int head_x, head_y,tail_index; int dx[] = { 1,0,-1,0 }; int dy[] = { 0,1,0,-1 }; int main() { ios_base::sync_with_stdio(false..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pMV5L/btqGH2qY7TP/ULKxxrvvbzS1KNYv0z8ZXk/img.jpg)
https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있�� programmers.co.kr Union and Find 사용 #include #include #include using namespace std; int g[201]={0}; int check[201]={0}; int find(int x) { if(g[x]==x) return x; else return g[x]=find(g[x]); } void Union(int x, int y) ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/clAQh6/btqGIpeJodi/Qx7sSFUw7fJDHIXM8K8zMK/img.jpg)
https://www.acmicpc.net/problem/12100 #include using namespace std; int n; int answer = 0; struct BOARD { int map[20][20]; void rotate() { //90도 회전 int temp[20][20] = { 0 }; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { temp[j][n-i-1] = map[i][j]; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { map[i][j] = temp[i][j]; } } } void up() { //위로 올리기 int temp[20][20]; for..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Z2tk8/btqGNCKSsVi/kPQmq0jemn70TabiRipX90/img.jpg)
https://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr C++ #include #include using namespace std; struct pos { int st,end; pos(int a, int b) { st=a; end=b; } bool operator < (const pos &b) const { return end < b.end; } }; int solution(vector routes) { int answer = 0; vector v; for(int i=0;i