💟 오랜만에 DFS/BFS 공부를 열심히하고 풀어보았다. 풀고나니까 쉬운 난이도였다. 1. 먼저 n명의 사람 케빈 베이컨 수를 구해야 해서 go를 인원수 만큼 반복해서 돌린다. 2. 현재 나의 번호를 기준으로해서 n-1명이 각각 몇번만에 갈 수 있는지 체크해야함 따라서, go함수 내에서 n만큼 돌린다. 3. bfs 함수로 들어와서 케빈의 수를 구한다. 4. 케빈의 수를 구해야하는 사람(goal)이라면 k 에 현재 p값이 min이라면 집어넣기. 5. 아니라면 방문했음을 체크하고 bfs를 한번더 돌린다. bfs가 끝나면 방문 체크해제를 해야함. 6. 난 vector 로 result를 꾸렸다. 인덱스 오름차순으로 정렬 후 답을 출력한다. #include #include #include #include usin..
백준 15828 C++ #include #include #include using namespace std; int n, t; int main() { cin >> n; queue q; while(1) { cin >> t; if(t == -1) break; if(t == 0) { q.pop(); continue; } if(q.size() == n) continue; q.push(t); } if(q.empty()) cout

빅오 표기법(Big-O notation) 이란 복잡도에 가장 영향을 많이 끼치는 항의 상수인자를 빼고 나머지 항을 없애서 복잡도를 나타내는 표기법입니다. 예를들어서 10n² + n 이 있을때, 시간복잡도에 가장 영향을 많이 미치는 것은 n² 입니다. 왜냐하면 1부터 대입해보면 n² : 1, 4, 9, 16, 25 ,36 … n : 1 ,2 3, 4, 5, 6, n보다 n²의 증가가 더 급격한 걸 볼 수 있습니다. 그래서 영향력이 적은 항 제거, 상수항 제거하여 10n² + n는 다음과 같이 표기할 수 있습니다. O(n²)
https://www.acmicpc.net/problemset?sort=ac_desc&algo=170 문제 - 1 페이지 www.acmicpc.net 랜선자르기를 하기 전에 이분탐색과 매개변수찾기 알고리즘을 알아야한다고해서.. 이분탐색은 ok 매개변수찾기 알고리즘? 바로 분류 들어가서 첫번째꺼부터 보니까 '나무자르기' https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 문제 N개의 나무의 수, 상근이가 가져가..
import java.util.Scanner; public class MyTest { public static void main(String[] args) { // TODO Auto-generated method stub Scanner s = new Scanner(System.in); int c1 = s.nextInt(); int c2 = s.nextInt(); int[] val = new int[c1]; int[] result = new int[c2]; for(int i = 0; i