본문 바로가기

백준 문제 풀이 & C++ 공부54

백준 1068 C++ 처음에는 다음과 같은 코드를 제출했다. 예시도 문제없이 통과하고 제출했을 때 %도 쭉쭉 오르다가 77%에서 틀렸다. #include #include using namespace std; int n; int removeNode; vector tree(51); int leafCount = 0; int root; int visited[51]; void dfs(int s) { if (visited[s] == 1) { return; } if (tree[s].size() == 0) { if (s == removeNode) return; leafCount++; return; } for (auto i : tree[s]) { dfs(i); } } int main() { cin >> n; for (int i = 0; i .. 2024. 2. 13.
백준 11047번 C++ #include using namespace std; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int n, k; cin >> n >> k; //n과 k입력 n은 동전의 종류, k라는 값을 만들어야함. int count=0; int next = n-1; int money[10] = {0, }; for(int i=0; i> money[i]; //0~n-1까지 입력받음. } while (k != 0) { if(k-money[next] < 0){ //초과해서 빼지면 continue함. next--; continue; } count += k/money[next]; k = k%money[next]; next--; } cout 2022. 9. 13.
백준 1676번 C++ https://www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 와.. 문제보고 재귀로 팩토리얼 다 만들고 10으로 나누니 시간 초과가 뜬다. 어떻게든 줄어보려고 재귀에 이상한 짓 다 했는데 계속 시간초과가 떠서 뭐가 문제인지 모르겠었다. 근데 2*5가 10이 되는 걸로 푼다는게 아닌가.. 배신감... 즉 팩토리얼에 5가 몇번 곱해지는지 보면 된다. 5가 나오면 count+1, 25면 count +2처럼... 계속 생각했는데 생각도 못한 방법이다. #include using namespace std; int main(){ int n; cin >>.. 2022. 9. 7.
백준 1463번 C++ https://assb.tistory.com/entry/%EB%B0%B1%EC%A4%80-1463%EB%B2%88-1%EB%A1%9C-%EB%A7%8C%EB%93%A4%EA%B8%B0 백준 1463번: 1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이.. assb.tistory.com #include using namespace std; int numbers[1000001]; //몇번 하는지 횟수 저장 //X가 3으로 나누어 떨어지면 3으로 나눈다. //X가 2로 나누어 떨어지면 2로.. 2022. 8. 9.