seegongsik
내 단어장
알고리즘

완벽 대신 충분히 좋게

지난 이야기에서 봤죠. 어떤 문제는 경우의 수가 폭발해서, 완벽한 답을 끝까지 따지면 평생 걸려요. 그럼 포기해야 할까요? 꼭 그렇진 않아요. 완벽한 답은 못 구해도, '충분히 좋은 답'이라면 금방 구할 수 있을 때가 많거든요. 조금 손해 보고, 시간을 크게 버는 거예요.

01

완벽은 잠시 내려놓아요

어려운 문제가 있어요.
완벽한 답을 찾으려면
모든 경우를 다 따져야 하는데,
그 수가 어마어마해요.
끝까지 가면
분명 가장 좋은 답이 나오긴 해요.
그런데 그게
언제 끝날까요?
눌러서 한번 세어봐요.

1
2
2
3
4
5
6
7
입력 크기: 1 - 따질 경우의 수: 2
아직은 셀 만해요.

완벽한 답을 끝까지 따지면. (경우의 수가 불어나 시간이 폭발 → 끝이 안 보여요)

수가 너무 빨리 불어나요.
몇 개만 늘어도
따질 게 몇 배씩 많아져요.
그러니 완벽한 답을
끝까지 기다리는 건
현실적이지 않을 때가 있어요.
그렇다고
손 놓을 순 없죠.

02

충분히 좋은 답을, 빨리

여기 한 가지 생각이 있어요.
꼭 최고가 아니어도
괜찮다면?
완벽을 노리는 대신
그냥 빠르게
'그럭저럭 좋은 답'을
뽑아보는 거예요.
탐욕에서 했던 것처럼,
눈앞의 좋은 걸
척척 골라가면서요.

어림 답
순식간
?
완벽한 답
한참 걸림
?

빠른 어림 답 vs 완벽한 답. (어림 답은 순식간에 · 차이는 조금뿐)

보세요.
어림 답은 눈 깜짝할 새 나왔는데,
완벽한 답이랑
차이가 별로 안 나요.
조금 부족하지만
쓸 만하죠.
많은 경우에
이 정도면 충분해요.

03

얼마나 좋은지 보장해요

그런데 한 가지 걱정이 있죠.
'그럭저럭 좋은 답'이라고
믿어도 될까?
혹시 엄청 나쁜 답이면
어떡하죠?
그래서 똑똑한 방법들은
약속을 함께 줘요.
'이 답은 최고보다
많이 나빠지진 않아'
하고요.

최적
150
보장선 (최적의 1.5배)

최적의 1.5배 이내 보장. (어떤 답이 나와도 이 선 안 → 최악이 막혀 있어요)

이게 진짜 멋진 점이에요.
'최적의 1.5배 안'처럼
선을 그어두면,
답이 아무리 나빠도
그 선을 넘지 못해요.
완벽하진 않아도
얼마나 못 미더운지
우리가 정확히 알아요.
그건 막연한 추측과
완전히 달라요.

04

정확도와 시간을 맞바꿔요

결국 이건 저울이에요.
시간을 더 쓰면
답이 더 정확해지고,
시간을 아끼면
답이 조금 거칠어져요.
어느 쪽이 좋다고
딱 정할 순 없어요.
급하면 빠른 쪽,
정밀해야 하면 정확한 쪽.
손잡이를 움직여
둘 사이를 골라봐요.

쓴 시간45%
정확도89%
시간과 정확도를 적당히 맞췄어요.

시간을 더 쓰면 더 정확, 덜 쓰면 덜 정확. (어디서 멈출지는 우리가 골라요)

이 저울은
알고리즘 전체의 마음이에요.
빠른 길과 정확한 길,
간단한 길과 꼼꼼한 길.
매번 우리는
무엇을 내주고
무엇을 얻을지를 골라왔어요.
좋은 방법을 안다는 건,
이 저울을 잘 읽는 거예요.

05

여기까지 온 길

긴 길을 걸어왔어요.
순서대로 풀기에서 시작해서,
줄 세우고, 찾고,
비용을 재고,
나누고, 잇고, 골랐죠.
어떤 문제는 정말 어렵다는 것도,
그래도 충분히 좋은 답이
있다는 것도 봤어요.
눌러서 그 길을
한 번에 돌아봐요.

이 영역이 준 것을 차례로 눌러 정리해요

이 영역이 준 네 가지. (좋은 방법 · 빠르기 · 전략 · 한계를 알고 타협)

모든 문제를
완벽하게 풀 수는 없어요.
하지만 그게
무력하다는 뜻은 아니에요.
빠른 방법으로,
똑똑한 전략으로,
한계를 알고 현명하게 타협하면,
어려운 문제 앞에서도
쓸 만한 답을
손에 쥘 수 있어요.
그게 알고리즘이
우리에게 주는 힘이에요.

한 줄 정리완벽한 답을 빨리 못 구하는 어려운 문제라도, '충분히 좋은 답'은 빨리 구할 수 있을 때가 많아요. 어떤 방법은 한 발 더 나아가서, 그 답이 '최적의 몇 % 안'이라는 보장까지 줘요. 정확도를 조금 내주고 시간을 얻는 타협이죠. 시간을 더 쓰면 더 정확해지고, 덜 쓰면 덜 정확해지고. 어디서 멈출지는 우리가 골라요. 이게 이 영역 전체의 마무리예요. 모든 문제를 완벽하게 풀 수는 없지만, 빠른 방법으로, 똑똑한 전략으로, 한계를 알고 현명하게 타협하면, 어려운 문제 앞에서도 쓸 만한 답을 손에 쥘 수 있어요.
알고리즘
이 페이지가 도움 됐다면 후원하기