
레벨3 정도의 난이도인데 도움없이 꽤 빨리 풀었다! 처음엔 방문한 노드는 삭제해 버리면 되지 않을까? 하고 쉽게 생각했는데 재귀에서 그런 식의 설계는 위험하다고 생각해서 하지 않았다. 그리고 노드를 삭제 한다고 해도 컴퓨터로 접근은 computer[i][j] 가 되어야 하기 때문에 노드를 삭제하면 인덱스로의 접근이 어려워진다. 그래서 computerCheck 라는 false로 초기화된 크기 200의 벡터를 두었다. 전에 풀었던 어떤 문제에서처럼 방문 여부 체크, 실제 컴퓨터 접근 이렇게 2가지를 두고 해결했다. 이렇게만 두면 구현자체는 쉽다. computerCheck [i] 가 false일 때를 우선 체크하고 dfs함수 내부로 들어가서는 computerCheck [i] 가 false인지, c..

DFS로 푸는 문제이다. DFS는 재귀로 풀면 쉽다. 문제의 조건은 + or - 이기 때문에 합계에 + 를 해주는 재귀 호출 1번과 -를 해주는 재귀호출 2 번을 두면 된다. 재귀 함수를 짜면서 늘 난감한 부분은 return 부분이다. 종료 조건을 잘 걸어야 무한루프에 빠지지 않기 때문. 문제에서는 숫자들을 담고 있는 numbers라는 벡터의 [0] 값을 지워주면서 벡터의 크기가 0 일때 return 시켜주는 방식을 이용했다. 벡터 재할당이 일어나는것이 싫다면 벡터의 index를 갖는 int 파라미터를 함수 인자에 추가시키면 되겠다. 벡터 복사도 싫으면 레퍼런스로 넘기면 되고. 나는 그냥 이해하기 쉽게 씀. 최종적으로 return할 값은 전역변수로 뒀다. DFS 로 풀어야 하는 첫 번째 문제..
- Total
- Today
- Yesterday
- 고득점 Kit
- IMGUI
- 데디케이티드
- 탐욕법
- Ue
- UE5
- Unreal 5.1
- 정렬
- C++
- 완전탐색
- 고득점kit
- greedy
- level3
- 디자인 패턴
- FPS
- 스택/큐
- LV3
- sort
- 채팅서버
- 힙
- 해시
- 누적합
- 재귀
- LV2
- Heap
- DFS
- 개인공부
- BFS
- 프로그래머스
- 너비우선탐색
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |