문제 생각 과정만약 물약 종류가 정해진 물략 종류 이상을 넘어가면(기저조건),벡터 하나 더 만들어서 복사하고,a,b 짝 만들어서 cost[a] - b로 최대 할인율 적용해서 res에 더해주기 그리고 최종 결괏값음 최소 물약갯수니 min(res, ans) 로 저렴하게 구매한 물약 동전개수 구해줌. 밑에는 1부터 n까지 루프돌리고 기본 bt format에 벡터만 상황에 맞게 push하거나 pop 하면 된다. 코드#include #include #include //Pairusing namespace std;const int MAX_N = 13;int n;int p[MAX_N];int c[MAX_N];int cost[MAX_N];int aj;int dj;bool check[MAX_N];int answer =..
생각 과정struct를 하나 구현해주고 tree 의 left 하고 right을 표현해줘야 children(자식 노드들) 을 참조할수 있음Preorder는 인풋 받고 left, right 차례대로 재귀로 순회Inorder는 left로 먼저 D(맨 왼쪽 끝 자식노드) 참조하고 그리고 input 받고 right 순회Postorder는 삼각형 모양을 먼저 뽑고 왼쪽 노드를 참조 못하니 오른쪽 끝 자식에서부터 순회 -> 따라서 left, right 둘다 순회해주고 인풋 받기 모든 함수 기저조건 - 만약 . 만나면 자식노드 없으니 아무것도 리턴하지 않음.처음 left right 포인터 만약 문제가 달라지면 설정법이 달라질 수도있으니 주의. 코드#include using namespace std;int n;//참조/..
N과 M (1)#15649 백준풀이 생각 과정중복 없이 M개를 고른 수열을 뽑으니n 과 m 인풋을 받고, dfs에서 입력값과 m이 일치하면 출력,그리고 if(!check[i])같은 bool 배열 조건문으로 중복을 지속적으로 체크(백트래킹)을 해줘야 함.dfs(입력값 + 1) 로 재귀 함수 돌리기 코드#include using namespace std;int a[11];bool check[11];int n;int m;//Backtracking, Recursion, DFSvoid dfs(int d){ if (d == m){ for (int i = 0; i sync_with_stdio(0); cin >> n >> m; dfs(0); } N과 M (2)#15650 백준..
- Total
- Today
- Yesterday
- 백준
- 몇번째조합
- N과M
- 트리 순회
- 2857
- 문자사각형
- 3427
- 1438
- 1304
- 15651
- 숫자사각형3
- 2604
- 세로읽기
- 1338
- 볼모으기
- 8129
- 5545
- 15652
- 문자삼각형1
- 정올
- 단어집합2
- 색종이(초)
- 15650
- 연필공장
- 색종이(중)
- 문자열찾기
- 1535
- 15654
- 볼 모으기
- 24954
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |