https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net #include #include using namespace std; int map[1001][3]; int N; int cost[3]; int main(){ cin>>N; map[0][1] = 0; map[0][2] = 0; map[0][0] = 0; for(int i = 1; i > cost[0] >> cost[1] >> cost[2]; map[i][0] = min(map..
https://www.acmicpc.net/problem/11779 11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스 www.acmicpc.net #include #include #include #define INF 100000000 using namespace std; int dist[1001]; int N; int M; vector a[100001]; int location[100001]; void dijkstra(int start){ priority_queue pq; for(int i = 0; i nco..
https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net #include #include #include #include using namespace std; bool visited[100001]; int BFS(int X, int K){ priority_queue q; q.push(make_pair(0, X)); visited[X] = true; while(!q.empty()){ int cur = q.top().sec..
https://www.acmicpc.net/problem/12015 12015번: 가장 긴 증가하는 부분 수열 2 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000,000) www.acmicpc.net ※틀린 풀이 #include using namespace std; int cache[1000001]; int A[1000000]; int N; int Lis(int start){ int &ret = cache[start+1]; if(ret != -1){ return ret; } ret = 1; for(int next = start + 1; next < N; ++next){ if(start == -..
https://www.acmicpc.net/problem/12851 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net ※잘못된 BFS #include #include using namespace std; int dx[2]= {-1, 1}; queue q; bool visited[100001]; int N; int K; int BFS(int X, int cnt){ visited[X] = true; queue q; q.push({X, cnt}); while(!q.empty()){..