줌코딩의 코딩일기
Zoom in Coding
-
(백준 알고리즘 문제풀이) 1697번 숨바꼭질
문제 문제 링크 어떻게 접근할 것인가? n을 큐에 넣고 front 원소를 꺼내서 +1, -1, *2한 후보군을 큐에 다시 넣어준다. 이 때 음수는 못들어가게 해준다. 그 전에 n이랑 k랑 같다면 0을 출력해주는게 함정이다. 코드 #include <cstdio> #include <queue> using namespace std; int arr[500000]; int cand[3]; int n, k, x, c; int...
-
(백준 알고리즘 문제풀이) 1389번 케빈 베이컨의 6단계 법칙
문제 문제 링크 어떻게 접근할 것인가? 플로이드 와샬 알고리즘이라는데 그냥 수업시간 기억으로 플었다 키야ㅎㅎ 모든 노드에서 모든 노드로의 거리를 구하는 문제이다! 코드 #include <cstdio> int n, m, n1, n2, **d, min = 1; int main(){ scanf("%d %d", &n, &m); d = new int*[n+1]; for(int i = 0; i < n+1;...
-
(알고리즘) 세그먼트 트리 알고리즘 + 예제 코드
세그먼트 트리란? 세그먼트 트리는 트리의 각 노드에 어레이 부분부분의 연산 결과를 미리 저장해놓으므로써 탐색 시간을 OlogN)으로 감소시켜준다. 주로 부분합, 부분최소, 최대값을 찾는데 사용된다. 세그먼트 트리 구조 세그먼트 트리의 리프 노드와 나머지 노드는 다음과 같은 의미를 가진다. 리프 노드 : 해당 어레이 값 다른 노드 : 오른쪽 자식과 왼쪽 자식을 연산한...
-
(백준 알고리즘 문제풀이) 7576번 토마토
문제 문제 링크 어떻게 접근할 것인가? 일단 주변의 테두리를 만들어서 -1로 가득 채워준다. 값을 다 받아서 현재 1인 애들을 큐에 넣어준다. 큐에 넣은 값의 상하좌우를 살펴서 0인 친구를 큐에 넣고 해당 위치의 값을 큐 front 위치 값 + 1로 업데이트 해준다. 큐가 빌 때까지 위의 과정을 진행하고 벡터 전체를 확인해서...
-
(백준 알고리즘 문제풀이) 4344번 평균은 넘겠지
문제 문제 링크 어떻게 접근할 것인가? 이 문제는 sorting을 하고 upper_bound를 이용해서 평균 전까지 마지막 값을 찾고 전체 갯수에서 나눠준다. 코드 #include <cstdio> #include <vector> #include <algorithm> using namespace std; int main(){ int n, m, input; scanf("%d", &n); while(n--){ int sum = 0; float aver; scanf("%d", &m); vector<int> v(m); for(int...