#문제 1676번: 팩토리얼 0의 개수 https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net #접근방법 N!은 1부터 N까지의 숫자의 곱을 의미한다. N!의 0의 개수를 구하려면 10의 약수인 2와 5의 개수를 먼저 구해줘야한다. #풀이 #include int main(){ int n; int a=0,b=0; int ans; scanf("%d",&n); for(int i=2;i
#문제 17144번: 미세먼지 안녕! https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net #접근방법 구현, 시뮬레이션 문제이다. 문제에서 제시한 대로 코드를 작성해주면 된다. #풀이 #include #include int arr[55][55]; int temp[55][55]; int xx[4] = {-1,0,1,0}; int yy[4] = {0,1,0,-1}; int main(){ int r,c,t; int air; int ans=0; scanf..
#문제 14938번: 서강그라운드 https://www.acmicpc.net/problem/14938 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net #접근방법 모든 정점에서 모든정점으로 가는 최단경로를 구할 수 있는 최단거리 알고리즘을 사용하여야 한다. 모든 정점에서 모든 정점으로 가는 플로이드 워셜 알고리즘을 사용하여도 되고, 한 정점에서 모든 정점으로 가는 다익스트라 알고리즘을 반복문을 통하여 모든정점에서 출발시켜서 구하여도 된다. 아래 풀이는 다익스트라 알고리즘을 사용하였다. https://rujang.tis..
수영장에 가서 4시간 동안 놀다가 왔는데 당일 밤부터 점점 몸이 아프더니 다음날에는 머리가 아프고 기침이 많이 나와서 바로 자가검사키트를 사용했는데 음성이 나왔습니다. 음성이 나왔지만 기침을 계속 해서 본능적으로 코로나에 걸렸다는 것을 알았습니다. 그 다음날에 자가검사키트를 사용하니 양성이 나오는 것을 보고 코로나에 걸린 후 2일은 지나야 양성이 나오는 것을 알게되었습니다. 당분간은 몸 회복에 신경을 쓰고 조금 괜찮아지면 다시 백준 하루 한 문제를 하겠습니다.
#문제 11404번: 플로이드 https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net #접근방법 최단거리 알고리즘 중 모든정점에서 모든정점으로 가는 최단거리를 구하는 플로이드 워셜 알고리즘을 사용해야한다. 이 알고리즘은 O(n^3)이라는 시간복잡도가 걸린다. #풀이 #include #define INF 987654321 int arr[105][105]; int main(){ int n,m; int a,b,c; scanf("%d",&n); scanf("..
백준을 하루 한 문제씩 풀다가 처음 끊겼을 때는 군대에서 휴가를 나왔을 때 끊겼지만 부대 복귀하고 격리가 해제되자마자 바로 사지방으로 달려가서 문제를 풀었었다. 이번에도 휴가를 나갔을 때 백준을 풀지 않아서 끊겼지만, 휴가 복귀를 하고 두 차례에 걸친 격리와 대대 홈페이지 제작 및 전역준비를 하느라 백준을 풀지 못하였다. 물론 문제를 풀 시간은 있었다. 하지만 다른곳에 온 신경을 쏟고 있었기 때문에 제대로 집중을 하지 못할 것 같아서 전역하고 풀기로 결심하였다. 마침내 전역을 하고 사회에서 글을 쓰는 것이 매우 기쁘다. 오랜 시간동안 못했던 백준 하루 한 문제를 다시 시작해본다. 이번엔 끊기는 일 없이 꾸준히 문제를 풀고 블로그에 글을 포스팅하겠다!!
#문제 1967번: 트리의 지름 https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net #접근방법 트리의 정보를 단방향 노드로 배열에 저장해준다음, 루트부터 아래로 내려가면서 bfs를 이용하여 트리의 지름을 구해주면 된다. #풀이 #include #include #include using namespace std; vector tree[10005]; int ans; int dfs(int x){ int biglen=0; int len..
#문제 2638번: 치즈 https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net #접근방법 치즈가 두 변 이상이 공기와 접촉할 때 녹는다. 단, 바깥이 치즈로 둘러쌓여있는 공기일 경우에는 접촉하더라도 카운팅이 되지 않는다. 치즈가 녹고 안쪽 공기가 외부 공기와 접촉할 경우에 안쪽 공기를 외부 공기로 변환시켜주면서 치즈가 녹는 경우를 구하면 된다. #풀이 #include #include using namespace std; int arr[1..
#문제 1504번: 특정한 최단 경로 https://www.acmicpc.net/problem/1504 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net #접근방법 이 문제는 최단거리 알고리즘 중에서 다익스트라 알고리즘을 사용하는 문제이다. 비슷한 문제로 https://rujang.tistory.com/entry/%EB%B0%B1%EC%A4%80-1753%EB%B2%88-%EC%B5%9C%EB%8B%A8%EA%B2%BD%EB%A1%9C-CC [백준] 1753번 : 최..