기록
[C++] 백준 1389 케빈 베이컨의 6단계 법칙
algorithm/백준 2023. 7. 7. 17:09

💟 오랜만에 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..

[C++] 백준 15828 라우터
algorithm/백준 2023. 6. 23. 16:14

백준 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

article thumbnail
Big-O 표기법
algorithm 2023. 1. 14. 16:29

빅오 표기법(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²)

매개 변수 탐색
algorithm/백준 2022. 12. 27. 09:58

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개의 나무의 수, 상근이가 가져가..

나의 문제 풀이 기록 깃허브
algorithm/백준 2022. 12. 26. 17:25

https://github.com/ul2dlm/UL2D-Algorithm-Adventure

[3036번] 링
algorithm 2019. 6. 27. 12:04

#include int a, b, arr[1001]; int i; int x; int gcd(int c, int d); int main() { scanf("%d", &a ); if(a > 2 && a < 101) { for(i=0; i

구간 합 구하기 4 [11659번]
algorithm 2019. 6. 26. 16:16

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