본문 바로가기

개인공부1221

[백준] 20950번 : 미술가 미미 (C++) 20950번 : 미술가 미미 문제) 미미는 미적 감각이 뛰어난 미술가이다. 미미는 때때로 여러 물감을 섞어 새로운 색의 물감을 만들고는 한다. 어느 날 그림을 그리던 미미는 놀라 자빠질 수밖에 없었다. 미미가 가장 아끼는 곰두리색 물감이 다 떨어졌기 때문이다. 하지만 미미는 새 물감을 살 돈이 없다. 물감은 역시 섞어 써야 제맛이다. 미미는 남은 물감들을 섞어 곰두리색 물감을 만들기로 결심하였다. 먼저 RGB 표기법에 대하여 알아보자. RGB 표기법은 빨간색(Red), 초록색(Green), 파란색(Blue)을 혼합하여 색을 나타내는 방법으로, 각각의 색은 밝기에 따라 0부터 255까지의 정수로 표현한다. 예를 들어, 분홍색은 rgb(255, 192, 203)과 같이 표현한다. 이는 빨간색을 255만큼, .. 2024. 2. 16.
[백준] 10819번 : 차이를 최대로 (C++) 10819번 : 차이를 최대로 문제) N개의 정수로 이루어진 배열 A가 주어진다. 이때, 배열에 들어있는 정수의 순서를 적절히 바꿔서 다음 식의 최댓값을 구하는 프로그램을 작성하시오. |A[0] - A[1]| + |A[1] - A[2]| + ... + |A[N-2] - A[N-1]| 입력 : 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. 출력 : 첫째 줄에 배열에 들어있는 수의 순서를 적절히 바꿔서 얻을 수 있는 식의 최댓값을 출력한다. 풀이) 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 27 28 2.. 2024. 2. 16.
[백준] 1182번 : 부분수열의 합 (C++) 1182번 : 부분수열의 합 문제) N개의 정수로 이루어진 수열이 있을 때, 크기가 양수인 부분수열 중에서 그 수열의 원소를 다 더한 값이 S가 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. 출력 : 첫째 줄에 합이 S가 되는 부분수열의 개수를 출력한다. 풀이) 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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 /.. 2024. 2. 16.
[알고리즘] 백트래킹 1 (Backtracking) 개인 공부 후 자료를 남겨놓기 위한 목적이므로, 생략되거나 오류가 있을 수 있음을 알립니다. 목차 0. 백트래킹의 목적 1. 백트래킹의 특징 2. 기본 구조 3. 1번 템플릿 4. 2번 템플릿 5. 3번 템플릿 6. 가지치기 0. 백트래킹의 목적 코드를 짜다보면 n중 반복문을 짤 경우가 생기게 된다. 이를 하드코딩으로는 거의 해결할 수 없게되므로 재귀함수를 이용하여 짜게 되는데 재귀함수를 이용한 완전 탐색 알고리즘을 백트래킹이라고 한다. 간단히 말해서는 정해지지 않은 n중 for문을 짜기 위한 목적의 알고리즘이라고 생각해도 된다. 1. 백트래킹의 특징 백트래킹의 특징은 다음과 같다. 진입장벽이 높다. (재귀함수 사용) (후술할) 기본 템플릿에서 내용을 수정하려면 재귀에 대한 높은 이해도를 요구한다. 한번.. 2024. 2. 15.