Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 다익스트라
- 재귀
- Unreal Engine 5
- 그래프
- 백준
- c++
- 자료구조
- 수학
- 투 포인터
- DFS
- ue5
- VR
- BFS
- 트리
- 시뮬레이션
- 백트래킹
- 알고리즘
- 스택
- 그리디 알고리즘
- 다이나믹 프로그래밍
- 문자열
- XR Interaction Toolkit
- 브루트포스
- 구현
- 정렬
- 유니티
- Team Fortress 2
- 누적 합
- 우선순위 큐
- 유니온 파인드
Archives
- Today
- Total
목록나무 재테크 c++ (1)
1일1알

처음에 입력을 받고 나무의 나이 순서대로 정렬한다. 봄에는 나이가 적은 순서대로 양분을 먹다가 만약 양분이 부족하면 뒤에 나무들을 전부 죽이고 죽은 나무에서 나오는 양분을 저장하는 배열에 나이/2만큼 저장한다. 이 때 배열의 뒤에서부터 죽였다. 뒤에서 죽이면 O(1)에 죽일 수 있지만 앞에서부터 죽이면 O(n)의 비용이 들기 때문이다. 가을에는 처음에 모든 나무들을 reverse 해서 새로 생긴 나무를 뒤에 push_back으로 놓어주고 모든 작업이 끝나면 다시 reverse 해주었다. 이렇게 하는 이유는 새로 생긴 나무는 나이가 무조건 1이기 때문에 제일 어릴 수밖에 없다. 그래서 처음에 뒤집고 새로 생긴 것을 넣어주고 다시 뒤집으면 따로 정렬을 안해줘도 되기 때문이다. (근데 굳이 이렇게 안해도 될듯..
알고리즘
2022. 5. 23. 14:11