이미지 출처: 리얼 초등교사 생존기! - [웹툰] 교대신, 만만히 볼 수 없지 <섭섭한 라이프 #66>
1. 애드혹(ad-hoc)이란?
애드혹은 라틴어로 "이것을 위해" 라는 뜻으로, 특별한 목적을 위한 특별한 해결책을 말합니다.
초등교사를 양성하는 교대에서, 초등교사는 많은 분야를 평균 이상 해야한다는 의미로 "교대신"이라는 말이 있습니다.
하지만 애드혹은 "교대신"과는 정반대로 다른 일에는 적용할 수 없거나, 일반화할 수 없는 해결책을 말합니다.
특수 목적을 지닌 각종 위원회, 특정 개인을 위한 맞춤복 등 뿐만 아니라 임시방편이나 땜질식 해결방안도 애드혹에 속합니다.
https://ko.wikipedia.org/wiki/애드혹
애드혹 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 애드혹(라틴어: Ad hoc 아드 혹[*])은 "이것을 위해" 즉 "특별한 목적을 위해서"라는 뜻의 라틴어로, 일반적으로 다음을 나타낸다. 특정한 문제나 일을 위해 만들어
ko.wikipedia.org
2. 알고리즘 문제에서의 애드혹(ad-hoc)
보통 알고리즘 문제를 풀기 위한 전략은 여러 가지 정석적인 방법들이 존재합니다.
알고리즘이나 자료구조를 설명하는 책들의 목차를 보면, 큰 카테고리들이 존재합니다.
이런 큰 카테고리(주제)들을 하나씩 섭렵해 나가면, 알고리즘 문제를 푸는 데 큰 도움이 됩니다.
반면, 애드혹 문제는 일반적으로 알려진 정형화된 알고리즘으로 푸는 것이 아니라, 해당 문제만을 위한 특별한 아이디어를 찾아 해결할 수 있습니다.
그렇기 때문에 애드혹 문제는 별도로 분류되지 않고 애드혹 자체로 분류하지만, 굳이 따지자면 문제에서 나타나는 방법 그대로 프로그래밍하는 구현, 문제 속에 숨어있는 특정한 패턴이나 간략화된 공식을 찾아내는 그리디, 수학으로 분류할 수 있습니다.
3. 애드혹 문제를 잘 풀기 위한 전략
이런 특별한 문제를 잘 풀기 위해서는 문제를 잘 읽어보는 것입니다.
분명히 특정 패턴이 존재하거나, 단순화된 공식이 존재할 것이기 때문에 문제 속에 담겨 있는 조건들을 잘 따져보면 도움이 됩니다.
또 다른 방법은 다양한 애드혹 문제를 많이 풀어보는 것입니다.
애드혹 문제를 풀기 위해서는 일반화할 수 없는, 그 문제를 위한 특별한 아이디어를 떠올려야하므로 다양한 문제들을 많이 풀다보면 패턴이나 규칙을 찾아내는 데 도움이 됩니다.