본문 바로가기

C++17

[백준] 2839설탕배달 c++ dp문제이다. 2중 for문을 통해서 풀어줬다. 3키로 봉지와 5키로 봉지와 조합을 해서 만들 수 있는 무게여야하고 최소의 개수의 봉지를 사용해야한다. sugar[3]과 sugar[5]를 1로 초기화 해줬다. 해당 무게를 만들 수 있는 조합을 안에 있는 for문으로 다 검사해주어서 최소의 개수를 sugar[i]에 넣어주었다. #include #include using namespace std; int sugar[5001]; int main() { int n; cin >> n; for (int i = 0; i < 5001; i++) sugar[i] = 5000; sugar[3] = 1; sugar[5] = 1; for (int i = 3; i 2022. 5. 28.
[백준] 15829 Hashing c++ https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 보자 마다 쉽다고 생각했는데 50 점 맞았다. 문제는 Hash값을 M으로 나누어주는 것만 생각하고 31의 거듭제곱을 나누어줄 생각을 못했다는 것이다. #include #include using namespace std; int main() { int n; string s; cin >> n; cin >> s; int M = 1234567891; long long hash=0,j=1; for (in.. 2022. 4. 13.
[백준] 10815숫자카드 c++ 알고리즘 분류는 이분탐색으로 되어있는데 이분탐색으로 안풀고 이렇게 풀어도 될것같아서 이렇게 풀어봤다. 숫자가 마이너스도 들어오기 때문에 배열을 두개 만들어 주었고 들어온 숫자랑 똑같은 인덱스를 체크해주었다. 내일 이분탐색으로도 풀어봐야겠다. #include using namespace std; bool num[10000000]; bool Mnum[10000000]; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int m,temp; cin >> m; for (int i = 0; i > temp; if (temp < 0) Mnum[-(temp)] = true; else num[temp.. 2022. 4. 3.
[백준]1094막대기 C++ 비트마스킹 문제이다. #include using namespace std; int main() { int temp = 0; for (int i = 0; i 1000 2^3 =8 temp -> 10000 2^4 =16 . . temp ->1000000 2^6 =64 #include using namespace std; //지민이가 가지고 있는 막대의 길이를 모두 더한다.처음에는 64cm 막대 하나만 가지고 있다.이때, 합이 X보다 크다면, 아래와 같은 과정을 반복한다. //가지고 있는 막대 중 길이가 가장 짧은 것을 절반으로 자른다. //만약, 위에서 자른 막대의 절반 중 하나를 버리고 남아있는 막대의 길이의 합이 X보다 크거나 같다.. 2022. 3. 30.