PROGRAMMING/알고리즘
-
(백준 2805번 나무 자르기 C++) 라이님 블로그 대회 알고리즘 따라잡기 6) 이분탐색 2PROGRAMMING/알고리즘 2024. 3. 18. 21:08
라이님 블로그에 나와있는 풀이를 잘 익혀서 modern C++스타일로 짜봤다. 라이님 풀이는 아래 블로그 참고! https://blog.naver.com/PostView.naver?blogId=kks227&logNo=220777333252&parentCategoryNo=&categoryNo=299&viewDate=&isShowPopularPosts=false&from=postList 백준 2805번 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합..
-
(백준 2512번 예산 C++) 라이님 블로그 대회 알고리즘 따라잡기 6) 이분탐색 1PROGRAMMING/알고리즘 2024. 3. 18. 08:46
Modern C++과 함께 하는 월요일 아침.. 이분탐색 코드도 Modern C++ Style로 짜보기로 마음 먹었다. 참고로 이번주는 이분탐색을 뽀갤 예정!! https://blog.naver.com/PostView.naver?blogId=kks227&logNo=220777333252&parentCategoryNo=&categoryNo=299&viewDate=&isShowPopularPosts=false&from=postList 이분 탐색(Binary Search) (수정 2019-02-15) 안녕하세요. 블로그 점검이 새벽 1시부터 시작되어서 아쉽게도 개삘인 오늘 달릴 수가 없네요. 하지만... blog.naver.com 백준 2512번 https://www.acmicpc.net/problem/251..
-
(백준 10844번 쉬운 계단의 수 C++) 라이님 블로그 대회 알고리즘 따라잡기 5) DP(Dynamic Programming) 동적계획법 8PROGRAMMING/알고리즘 2024. 3. 14. 08:16
출근 전 한문제 컷! 이라고 말하기엔 그제부터 풀었던 쉬운 계단의 수 문제 ㅎㅎ 백준 10844번 https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 풀이는 간단하다!(라고 말하고 생각하는데 하루 걸렸다) f(n)을 n자리 계단수의 갯수라고 정의하면 f(n+1) = 2 * f(n) - {n자리 계단수 중 마지막 자리가 0또는 9인 수의 갯수}로 나타낼 수 있다. 마지막 자리가 0 또는 9인 수를 알기 위해 DP[n][10]을 만들어 기록해주기만 하면 완성! 마지막 자리수가 1인 수만이 그 다음 숫자의 마지막 수를 0으로 만들 수 있고, 마지막 자리수가 8인 수만..
-
(백준 12865번 평범한 배낭 C++) 라이님 블로그 대회 알고리즘 따라잡기 5) DP(Dynamic Programming) 동적계획법 7PROGRAMMING/알고리즘 2024. 3. 14. 00:06
오늘은 배낭 문제를 풀어보았다. 회사갈 때 재미로 코딩테스트 푸는 영상을 보는데, 문제를 읽다보니 어제 본 문제랑 똑같았다!!!! 아래 유튜브 아니였으면 평생 못 풀고 이해도 못했을텐데..😖 영상이 진짜 잘 설명해준다!!!!(강추) https://www.youtube.com/watch?v=rhda6lR5kyQ 백준 12865번 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 풀이..
-
(백준 2294번 동전2 C++) 라이님 블로그 대회 알고리즘 따라잡기 5) DP(Dynamic Programming) 동적계획법 6PROGRAMMING/알고리즘 2024. 3. 12. 21:45
내가 풀었다고 보기도 머쓱한 문제ㅎㅎ 이 문제의 풀이는 라이님 블로그를 무조건적으로 참고해야 한다!!! https://blog.naver.com/PostView.naver?blogId=kks227&logNo=220777103650&parentCategoryNo=&categoryNo=299&viewDate=&isShowPopularPosts=false&from=postList 동적 계획법(Dynamic Programming) (수정: 2019-02-07) 안녕하세요. 오늘 소개해 드릴 것은 바로 그 유명한 다이나믹 프로그래밍(Dynamic Programming)입니다. ... blog.naver.com 백준 2294번 https://www.acmicpc.net/problem/2294 2294번: 동전 2 ..
-
(백준 1699번 제곱수의 합 C++) 라이님 블로그 대회 알고리즘 따라잡기 5) DP(Dynamic Programming) 동적계획법 5PROGRAMMING/알고리즘 2024. 3. 12. 08:41
DPDP딥이 아침에 잘 풀려서 두 문제를 풀고 출근하려고 한다! 백준 1699번 https://www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; const int MAX_N = 100001; int N, DP[MAX_N]; int f(int n) { if (DP[n] != -1) ..
-
(백준 11052번 카드 구매하기 C++) 라이님 블로그 대회 알고리즘 따라잡기 5) DP(Dynamic Programming) 동적계획법 4탄PROGRAMMING/알고리즘 2024. 3. 12. 08:16
한달만에 복귀했다ㅎㅎ 이번주 DP 예제문제 다 뽀개고 다음 알고리즘으로 고고!! 백준 11052번 https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net 문제 자체는 어렵지 않다. f(n)을 n개의 카드에 사는데 드는 최대의 금액이라고 정의하면 f(n)은 f(n-1) + (1개의 카드에 지불할 최대 금액), f(n-1) + (2개의 카드에 지불할 최대의 금액), ... ,(f(1) + (n-1)개의 카드에 지불할 최대의 금액) 중 가장 큰 금액이 된다. 그러..
-
(백준 9465번 스티커 C++) 라이님 블로그 대회 알고리즘 따라잡기 5) DP(Dynamic Programming) 동적계획법 3탄PROGRAMMING/알고리즘 2024. 1. 27. 18:24
약 1주일만에 돌아왔씀다~ 라이님 블로그에 예제코드도 있는 스티커 문제! 백준 9465번 https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 아래 블로그에서 완벽한 코드를 확인하세요~! https://blog.naver.com/PostView.naver?blogId=kks227&logNo=220777103650&parentCategoryNo=&categoryNo=299&viewDate=&isShowPopularPosts=false&fro..