목록Computer/Coding Test (122)
Machineboy空

https://www.acmicpc.net/problem/2589 2589번: 보물섬 첫째 줄에는 보물 지도의 세로의 크기와 가로의 크기가 빈칸을 사이에 두고 주어진다. 이어 L과 W로 표시된 보물 지도가 아래의 예와 같이 주어지며, 각 문자 사이에는 빈 칸이 없다. 보물 지도의 www.acmicpc.net 문제요약 최단거리가 가장 먼 육지의 두 곳에 보물심기 난이도 Gold 5 풀이 포인트 BFS를 실행하면, 한 칸씩 움직일 때마다 최단거리가 갱신됨 즉, 도착 지점 과 출발지점 쌍이 계속 나오기 때문에 2쌍을 뽑아서 돌릴 필요가 없다. BFS void bfs(int y, int x) { memset(visited, 0, sizeof(visited)); visited[y][x] = 1; queue q;..
https://www.acmicpc.net/problem/1068 1068번: 트리 첫째 줄에 트리의 노드의 개수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 0번 노드부터 N-1번 노드까지, 각 노드의 부모가 주어진다. 만약 부모가 없다면 (루트) -1이 주어진다 www.acmicpc.net 문제요약 트리 구조에서 한 노드를 지웠을 때 리프노드의 개수를 구하라. 난이도 Gold 5 //내 코드 #include using namespace std; int n, a[52], k, ret; vector adj[52]; bool b[52]; void cut(int node) { b[node] = false; for (int s : adj[node]) { cut(s); } } int ma..

https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 문제요약 가장 효율적인 치킨 집의 개수와, 치킨 집까지의 최소 거리의 합 난이도 Gold 5 풀이 포인트 조합 void combi(int start, vector v) { if (v.size() == m) { chickenList.push_back(v); return; } for (int i = start + 1; i < chicken.size(); i++) { v.push..

https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 문제요약 공기와 접촉한 치즈의 표면이 녹아내릴 때, 모두 녹는 데 걸리는 시간과 녹기 1시간 전의 크기. 난이도 Gold 4 풀이 포인트 어떤 것을 중심으로 dfs를 돌릴지 잘 생각해야함. REVIEW 내가 하고 싶었던 건, 이동 방향에 우선순위를 두어 치즈 덩이(연결요소)의 시작점으로부터 반 시계방향 (아래,오른쪽,위, 왼쪽으로) 탐색하며 가장자리를 칠해가는 방식이었다. 풀이가 복잡해지는데 느낀 순간 오답이겠거니..

https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 문제요약 3개의 벽을 세워 바이러스가 퍼지지 않는 안전영역의 최대 크기 구하기 난이도 Gold 4 풀이 포인트 단계 꼼꼼히 if (nx >= 0 && nx = 0 && ny =n || ny =m || b[nx][ny] > 0) continue; /..

https://www.acmicpc.net/problem/2852 2852번: NBA 농구 첫째 줄에 골이 들어간 횟수 N(1 n; for (int i = 0; i > o >> s; if (A > B) go(asum, s); else if (B > A) go(bsum, s); o == 1 ? A++ : B++; prev = s; } if (A > B) go(asum, "48:00"); else if (B > A) go(bsum, "48:00"); cout

https://www.acmicpc.net/problem/1325 > n >> m; for (int i = 0; i > v >> u; adj[u].push_back(v); } for (int i = 1; i

https://solved.ac/contribute/17298 로그인 www.acmicpc.net 문제요약 오큰수(해당 요소보다 오른쪽에 있으면서 큰 가장 왼쪽의 수 찾기) 난이도 Gold 4 풀이 포인트 stack과 짝짓기 현재 인덱스들과 오큰수를 짝지어 pop하는 아이디어를 떠올려야 함. https://machineboy0.tistory.com/149 3986 : 좋은 단어 - 스택 https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드 machineboy0.tistory.com 스택 자료 구조를 이용한 쌍 Pop의 아이디어는 ..