오늘 한일

Jscript.NET 유지보수

이번 유지보수 프로젝트는 5월 2일에 완료된 줄 알았는데, 오늘 오전에 개발 이사님한테 새로운 요구사항 건으로 전화가 왔다. 예정된 면접을 끝내고 급하게 요구사항을 반영했다.

패키징 배치에서 master 배치를 re-open 하는 경우, sub 배치목록도 동시에 re-open 처리해달라는 요구사항 이었다. release의 경우 sub 배치목록도 동시에 수행한다. 그런데 왜 반대되는 기능인 re-open 은 똑같은 흐름을 구현하지 않았는지 의문이다. 그래도 기술적으로 어려운 부분은 없어서 금방 수정할 수 있었다.

백준 DP: 합분해

처음에 문제를 잘못 이해해서 한참 헤맸다. 이전 단계의 숫자에 앞 뒤로 숫자만 이어붙이면 되는 줄 알고 dp[k] = dk[k - 1] + N이라는 점화식을 세웠는데, 전혀 잘못된 풀이였다.

다시 들여다보니 문제 자체는 이해가 가는데, 도저히 점화식을 세울 수가 없었다. 'N과 K를 모두 고려해야 하니, dp가 2차원 배열이 되겠구나' 라는 생각까지는 들었다.

결국 이번에도 다른 사람 코드를 참고했다. 첫번째 풀이는 거의 대부분의 풀이와 비슷했다. L 이전 숫자들의 합이 N - L이고 K - 1이 된다는 것까지는 이해했으나, 왜 저런 풀이가 되는지 이해가 잘 안간다. 두번째 풀이는 쉽게 이해할 수 있었다.

오늘 느낀점

나는 알고리즘 문제를 풀 때, 보통 그림을 그려보는 편이다. 시나리오나 자료구조 문제에는 확실히 도움이 된다. 그러나, 수학과 관련된 숫자 놀이는 그냥 메모장에 많은 케이스를 적어보는 것이 더 효율적인 것 같다는 느낌이 들었다.

내일 할일

  • 백준 DP 2문제 풀이