프로그래밍/문제 썸네일형 리스트형 BOJ - 회의실배정 www.acmicpc.net/problem/1931 1931번: 회의실배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 회의 시작시간과 종료시간이 입력되고 회의 시간을 겹치지 않게 최대로 회의할 수 있는 수를 찾는 문제다. 종료시간이 제일 빠른 순으로 정렬을 했지만 채점을 통과하지 못했다. 그 이유는 종료시간을 똑같지만 시작시간이 다른 부분이 있기 때문에 시작시간도 빠른 부분으로 정렬 해 주어야 한다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344import sys #sys.stdin = open("input.txt","r") N = int(input.. 더보기 BOJ - 최솟값 ( 세그먼트트리) www.acmicpc.net/problem/10868 10868번: 최솟값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100,000)개 주어졌을 때는 www.acmicpc.net 세그먼트 트리 개념을 잡을 수 있는 기초적인 문제이다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970#include #include #include #include #define INF 1.. 더보기 프로그래머스 도둑질 (DP) programmers.co.kr/learn/courses/30/lessons/42897 코딩테스트 연습 - 도둑질 도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다. 각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 �� programmers.co.kr DP문제이다. 인접한 집을 털게되면 경보음이 울게된다. 그래서 한집 띄어서 도둑이 털게 만들어야 한다. 현재 집의 돈의 금액과 [i-2]위치의 금액과의 합과 [i-1]에서의 도둑이 털수 있는 금액의 합을 비교해서 큰값을 가지면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 def solut.. 더보기 백준 1 2 3 더하기 (dp) https://www.acmicpc.net/problem/9095 백준 1 2 3 더하기 문제다 1,2,3의 숫자를 가지고 해당 숫자를 구성 할 수 있는 경우의 수를 출력하는 문제. 1 2 3 의 경우를 구한다음에 해당 숫자까지 i-1 , i-2 , i-3 을 더해주면 정답이 나오는 dp 문제다. 1234567891011121314151617181920212223242526272829#include using namespace std; int dp[12]; int main(){ int N; int inputData; dp[0] = 0; dp[1] = 1; dp[2] = 2; dp[3] = 4; for (int i = 4; i > N; for (int i = 0; i > inputData; cout 더보기 바이러스 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include #define N 110using namespace std; int map[N][N];bool visit[N];int mapsize;int nodesize;int cnt; void input(){ int x, y; cin >> mapsize; cin >> nodesize; for (int i = 0; i > x >> y; map[x][y] = map[y][x] = 1; }}void dfs(int v){ visit[v] = true; for (int i = 1; i 더보기 단지번호 붙이기 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include #include #define N 25int map[N+1][N+1];int sol[N*N];int mapsize;int flag; void input(){ scanf("%d",&mapsize); for (int i = 0; i 더보기 백준알고리즘 . 숨바꼭질(BFS) 출처 : https://www.acmicpc.net/problem/1697 BFS문제 이다. +1 , -1 , *2의 경우를 체크를 하고 Que에 넣어서 1씩증가 시켜가면서 동생의 위치까지 과정을 확인한다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include using namespace std; int arr[100001];int t[100001];int N, K;int tmp;int cnt; void push(int x) { cnt++; arr[cnt] = x;}int main(){ int T; cin >> N >> K; arr[0] = N; t[N] = 1; tmp = 0; .. 더보기 백준알고리즘 . 계단오르기(DP) 출처 : https://www.acmicpc.net/problem/2579123456789101112131415161718192021222324252627282930313233#include using namespace std; int dp[301][2];int arr[301];int N; int max(int a, int b){ if (a > b) return a; return b;}int main(){ cin >> N; for (int i = 1; i > arr[i]; dp[1][0] = dp[1][1] = arr[1]; dp[2][0] = dp[1][0] + arr[2]; dp[2][1] = arr[2]; for (int i = 3; i 더보기 백준알고리즘 . 연속합(DP) 출처 : https://www.acmicpc.net/problem/1912 입력받은 data 에서 연속적인 합을 구하여 최댓값을 출력하는 문제이다. 처음 max와 dp[1]의 값을 초기화 시켜놓고 다음부터 뒷부분의 최댓값을 dp배열에 저장하여 최댓값을 구하는 과정을 거치게 된다. 12345678910111213141516171819202122232425262728293031323334353637#include using namespace std; int arr[100001];int dp[100001]; int maxfunc(int a, int b){ if (a > b) return a; return b;} int main(){ int N; int max; cin >> N; for (int i = 1; i.. 더보기 백준알고리즘 . 숫자삼각형(DP) 출처 : https://www.acmicpc.net/problem/1932 숫자 삼각형에서 밑으로 내려오면서 가질 수 있는 최대값을 출력하는 문제.바로 밑과 오른쪽 대각선으로 내려올 수 있다. 12345678910111213141516171819202122232425262728293031#include using namespace std; int arr[501][501];int dp[501][501];int N;int maxdata;int max(int a, int b){ if (a > b) return a; return b;}int main(){ cin >> N; for (int i = 1; i arr[i][j]; for(int i = 0 ; i 더보기 이전 1 2 3 다음