이해타산적으로 살면
성공할 수 없다는걸
프로그래밍 언어도 보여줍니다.
그리디 라는 프로그래밍 기법이 있습니다.
이것은 이득이 되는 것을 먼저 취하는, 그러니까 큰걸 먼저 취하는 기법인데요.
간단하게 여섯 종류 동전이 있습니다.
1원 5원 10원 50원 100원 500원
그리고 가장 작은 동전 숫자로 거스름돈을 주는 프로그램을 짭니다.
돌려줘야 하는 돈이 15원입니다.
간단하게
10원짜리 하나 고르고
5원짜리 하나 고르면 되겠죠?
135원이라도 마찬가지입니다.
100원 먼저
그다음 10원 3개
5원 1개
그런데 10원이 6원짜리로 바뀝니다.
그리고 돌려줘야 하는 돈은 15원 이에요.
그리디 기법을 쓰면
6원 두개와 1원 3개를 줘야합니다.
하지만 당연히 5원 3개를 주는게 가장 작은 경우죠.
프로그래밍 언어 마저도
눈앞의 이익에 눈이 멀면 안된다고 말합니다. ㄷㄷ;
(이런걸 신기한 걸로 치부해선 안되는 걸 알지만, 그래도 신기하니깐요.)