목록알고리즘/백준 (59)
쌓고 쌓다
https://www.acmicpc.net/problem/14916 14916번: 거스름돈 첫째 줄에 거스름돈 액수 n(1 ≤ n ≤ 100,000)이 주어진다. www.acmicpc.net #include #include using namespace std; int dp[100001]; int main(void) { int N; cin >> N; dp[1] = 999999; dp[2] = 1; dp[3] = 999999; dp[4] = 2; dp[5] = 1; for (int i = 6; i
https://www.acmicpc.net/problem/2629 2629번: 양팔저울 첫째 줄에는 추의 개수가 자연수로 주어진다. 추의 개수는 30 이하이다. 둘째 줄에는 추의 무게들이 자연수로 가벼운 것부터 차례로 주어진다. 같은 무게의 추가 여러 개 있을 수도 있다. 추의 무 www.acmicpc.net #include #include #include using namespace std; vector chu; vector gu; bool visit[40001][31]; int chuCnt, guCnt; void solve(int i, int w) { if (i == chuCnt||visit[w][i]==true) { visit[w][i] = true; return; } visit[w][i] = tr..
https://www.acmicpc.net/problem/13398 13398번: 연속합 2 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net #include #include #include using namespace std; int dp[100001][2]; vector v; int main(void) { int N; cin >> N; for (int i = 0; i > num; v.push_back(num); } int res = v[0]; for (int i = 0; i < N; i++)..
https://www.acmicpc.net/problem/2056 2056번: 작업 수행해야 할 작업 N개 (3 ≤ N ≤ 10000)가 있다. 각각의 작업마다 걸리는 시간(1 ≤ 시간 ≤ 100)이 정수로 주어진다. 몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 www.acmicpc.net #include #include #include using namespace std; vector v[10001]; int dp[10001]; int Time[10001]; int N; int main(void) { cin >> N; int cost, num; for (int i = 0; i > cost >> num; Time[i] = cost; for (i..
https://www.acmicpc.net/problem/2533 2533번: 사회망 서비스(SNS) 페이스북, 트위터, 카카오톡과 같은 사회망 서비스(SNS)가 널리 사용됨에 따라, 사회망을 통하여 사람들이 어떻게 새로운 아이디어를 받아들이게 되는가를 이해하는 문제가 중요해졌다. 사회망 www.acmicpc.net #include #include #include #include using namespace std; vector v[1000001]; int dp[1000001][2]; bool visit[1000001]; void solve(int x) { visit[x] = true; dp[x][1] = 1; for (int i = 0; i < v[x].size(); i++) { int child = ..
https://www.acmicpc.net/problem/15969 15969번: 행복 모든 서브태스크에서 2 ≤ N ≤ 1,000이고 입력되는 학생들의 점수는 0 이상 1,000 이하의 정수이다. www.acmicpc.net #include using namespace std; int main(void) { int Max=-1, Min=1001; int N; cin >> N; for (int i = 0; i > num; if (Max num) Min = num; } cout
https://www.acmicpc.net/problem/1453 1453번: 피시방 알바 첫째 줄에 손님의 수 N이 주어진다. N은 100보다 작거나 같다. 둘째 줄에 손님이 들어오는 순서대로 각 손님이 앉고 싶어하는 자리가 입력으로 주어진다. www.acmicpc.net #include using namespace std; bool visit[101]; int main(void) { int N,res=0; cin >> N; for (int i = 0; i > num; if (visit[num] == true) res++; else visit[num] = true; } cout
https://www.acmicpc.net/problem/2851 2851번: 슈퍼 마리오 첫째 줄에 마리오가 받는 점수를 출력한다. 만약 100에 가까운 수가 2개라면 (예: 98, 102) 마리오는 큰 값을 선택한다. www.acmicpc.net #include #include using namespace std; int arr[10]; int res = 0; void solve() { int sum=0; for (int i = 0; i = abs(100 - sum)) { res = sum; if (res >= 100) { cout arr[i]; } solve(); } res(결과)와 sum(이제껏 합)이 100과 ..