이코테(C++) (15) 썸네일형 리스트형 전보 #include #include #include #include #define INF 1e9 using namespace std; int n,m,start; //도시 개수 N, 경로의 개수 M, 시작점 start vector map[30001]; int dist[30001]; priority_queue q; void ds(int st){ q.push({0,st}); dist[st]=0; while(!q.empty()){ int distance=-q.top().first; int now=q.top().second; q.pop(); if(dist[now]>m>>start; for(int i=0;i>x>>y>>z; map[x].push_back({y,z}); } fill_n(dist,30001,INF); ds.. 미래 도시 2022-06-06 #include #include #define INF 1e9 using namespace std; int n,m; //회사 개수 N, 경로의 개수 M int x,k; int map[101][101]; int main() { freopen("input.txt","r",stdin); cin>>n>>m; for(int i=1;i>x>>k; //목표지점 x, 소개팅장소 k for(int k=1;k b; graph[a][b] = 1; graph[b][a] = 1; } // 거쳐 갈 노드 X와 최종 목적지 노드 K를 입력받기 int x, k; cin >> x >> k; // 점화식에 따라 플로이드 워셜 알고리즘을 수행 for (int k = 1; k 효율적인 화폐 구성 #include using namespace std; int n, m; vector arr; int main(void) { // 정수 N, M을 입력받기 cin >> n >> m; // N개의 화폐 단위 정보를 입력 받기 for (int i = 0; i > x; arr.push_back(x); } // 한 번 계산된 결과를 저장하기 위한 DP 테이블 초기화 vector d(m + 1, 10001); // 다이나믹 프로그래밍(Dynamic Programming) 진행(보텀업) d[0] = 0; for (int i = 0; i < n; i++) { for (int j = arr[i]; j 바닥 공사 #include #include #include #define MAX 796796 using namespace std; long long dp[1001]; int main() { //freopen("input.txt","r",stdin); int n; cin>>n; dp[1]=1; dp[2]=3; for(int i=3;i 개미 전사 #include #include #include using namespace std; int dp[101][2]; int food[101]; int main() { freopen("input.txt","r",stdin); int n; cin>>n; for(int i=1;i>food[i]; dp[1][0]=0; dp[1][1]=food[1]; dp[2][0]=food[1]; dp[2][1]=food[2]; for(int i=3;i 떡볶이 떡 만들기 2022-05-31 병원때문에 바쁘다 바빠. - 나의 코드 #include #include #include using namespace std; int n,m; vector dduk; vector candidate; int cut(int h){ int sum=0; for(int i=0;in>>m; for(int i=0;i>num; dduk.push_back(num); } sort(dduk.begin(),dduk.end()); for(int i=1;i m; for (int i = 0; i > x; arr.push_back(x); } // 이진 탐색을 위한 시작점과 끝점 설정 int start = 0; int end = 1e9; // 이진 탐색 수행 (반복적) in.. 이진 탐색(Binary Search) 이진 탐색이란 배열 내부의 데이터가 정렬이 되어있을때 사용할 수 있는 알고리즘이다. 데이터가 정렬되어 있지 않다면 사용 할 수 없지만, 정렬 되어 있다면 매우 빠르게 사용할 수 있는 알고리즘 이다. 이진 탐색에서는 위치를 나타내는 변수 3개를 사용한다. 탐색하고자 하는 범위의 시작점, 끝점, 그리고 중간점이다. 찾고자하는 데이터와 중간점의 데이터를 비교하는 연산을 통해 원하는 데이터를 찾는 것이다. 정렬되어 있는 10개의 데이터에서 원하는 값을 찾는 과정을 보자. 1 3 5 7 9 11 13 15 17 19 위와 같은 상태일때, 시작점과 끝점을 start,end 라고 해보자. 이때 중간 점은 (start+end)/2 (중간점 계산은 인덱스로 하는 것이다)로 이 값이 실수라면 소수점 이하는 버린다. 따라서.. 두 배열의 원소 교체 #include #include #include #include using namespace std; vector a; vector b; bool cmp(int a,int b){ return a>b; } int main() { int n,k; cin>>n>>k; for(int i=0;i>num; a.push_back(num); } for(int i=0;i>num; b.push_back(num); } sort(a.begin(),a.end()); sort(b.begin(),b.end(),cmp); for(int i=0;i k; // 배열 A의 모든 원소를 입력받기 for (int i = 0; i > x; a.push_back(x); } // 배열 B의 모든 원소를 .. 이전 1 2 다음