최적화 문제를 해결하는 전략 1. 직접 해보기를 적용했다. 길이가 짧은 예제부터 긴 예제의 순서로 풀었다. 길이가 긴 예제의 경우, 패턴이 한번에 보이지 않아서, 반복해서 그려주었고, 발견한 패턴을 모델링해서 다시 적용하는 식으로 피드백했다.
경우의 수를 나눴다. 첫 스티커를 뗀 경우와 두번째 스티커를 뗀 경우, 마지막 스티커를 뗀 경우로 나누었다.
두번째 스티커와 마지막 스티커가 동시에 제거될 수 있음을 간과했다. 때문에, 첫 스티커를 뗀 경우와 첫 스티커를 떼지 않은 경우로 간소화될 수 있었던 조건을 지나쳤다.
문제분석 - 모델링 - 의도표현 - 구현옵션 선택 - 최적화 전략 적용 의 흐름을 잘 적용하지 못했다. 특히 의도표현도 검증해야 한다는 사실을 알았다. 언어적으로 표현하고(가능하면 적고) 해당 의도(구현하고자 하는 내용)가 정말로 적합한지 다시 숙고하는 태도가 필요하다.
특히, 테스트 케이스 실패가 나오는 경우, 구현 상세를 넘어서서 의도 단계에서 오류 검증을 한다고 명확하게 인지하고 해야지 오류가 잡힌다.
유명한 문제를 풀었다. 익히 알고있는 문제여서, 흐름을 깔끔하게 가져갈 수 있었다. 대각선 조건이 키가 된다는 것을 발견했고, 가장 깔끔하게 적용할 수 있도록 다듬었다.
문제를 맞춘 후에, 다시 풀어보면서 재귀적 방법을 개선했다. 재귀함수를 아무것도 돌려주지 않고, 사이드 이펙트를 일으키는 함수에서, 명확한 리턴값이 생기는 것으로 바꾸고 이름도 잘지어주었다. 이게 가장 의미있는 시도같아서 기분이 좋다.