- 각 level에서 수정되는 자료구조는 call by value로 전달해야 한다.
- 변수 종류별 전달 방법
- 배열이 아닌 변수
- 브루트포스 함수의 인자로 넘겨준다(call by value)
- 배열인 변수
- 벡터를 사용해야만 call by value가 가능하다
- 배열은 call by value가 불가능하다(call by reference만 가능)
- 배열의 수정을 undo하기 용이한 경우(전체를 memcpy하는 것보다 저렴한 경우)
- BOJ 색종이 붙이기
- 색종이 크기만큼만 memset
- BOJ 괄호 추가하기
- 추가된 char만큼 삭제
- BOJ 색종이 붙이기
- 배열 전체가 수정되는 경우(undo 어려움)
- 배열 차원에 (level + 1) 차원을 더하여 전역에 선언한다.
- level간 memcpy로 call by value를 모방한다.
- BOJ 주사위 윷놀이
- 이번판에 저번판 윷놀이판 상태를 복사해온 뒤 play
- 배열의 일부만 수정되는 경우(undo 어려움)
- 배열 일부 차원에 level 차원을 더하여 전역에 선언한다.
- level 초반에 수정 전 원본을 자료구조에 담아두고
- level 후반에 수정된 원본에 자료구조를 덮어씌운다.
- SWEA 보호필름
- 매번 수정 범위가 행으로 특정된다.
- 배열이 아닌 변수
카테고리 없음