지능 퀴즈—고공에서 달걀 던지기

발행: (2025년 12월 18일 오후 01:35 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

출처

고성 인터뷰 질문

문제

100층 건물이 있고, 단단한 달걀 2개가 있다. 건물 위에서 달걀을 떨어뜨리면, 어느 층보다 높을 때부터 달걀이 깨지기 시작한다.
최악의 경우, 최소 몇 번을 던져야 반드시 이 임계 층을 찾을 수 있을까?

잘못된 생각

이분 탐색: 100 → 50 → 25 → 12 → 6 → 3 → 1
이 방법은 임계 층에 따라 던지는 횟수가 달라지며, 최악의 경우 최대 50번(실제로는 더 적게)까지 필요할 수 있다.

예를 들어, 임계 층이 49층이라면 첫 번째 달걀은 50층에서 깨지고, 이후 두 번째 달걀은 1층부터 차례대로 올라가며 49층까지 찾아야 한다.

올바른 생각

1. 문제 이해

  • 임계 층이 어느 층이든 최악의 경우에 필요한 최대 투척 횟수를 최소화해야 한다.
  • 두 개의 달걀 역할: 첫 번째 달걀은 구간을 나누는 데 사용하고, 두 번째 달걀은 그 구간 안을 한 층씩 탐색한다.

2. 핵심 아이디어

최악의 경우 첫 번째 달걀을 한 번 던질 때마다 남은 탐색 가능한 층 수 + 이미 던진 횟수가 일정하게 유지되도록 한다. 이렇게 하면 임계 층이 어디에 있든 전체 투척 횟수가 거의 동일하게 된다.

3. 구체적인 방법

  1. 첫 번째 달걀을 14층에 던진다.
    • 깨지면 두 번째 달걀을 아래로 한 층씩 내려가며 탐색한다. 최악의 경우 14번이 필요하다.
    • 깨지지 않으면 두 번째 시도는 27층(14 + 13)에 던진다. 이때 남은 탐색 가능한 층 수는 13층으로 감소한다.
  2. 이후 매번 감소시키는 층 수는 차례대로 12, 11, …, 1이 된다.
  3. 이렇게 하면 임계 층이 어느 층에 있든 최악의 경우 전체 투척 횟수는 14번이 된다.

4. 첫 번째 층을 14로 정하는 이유

층 수 감소의 합이 100층을 커버해야 한다:

$$ 1 + 2 + 3 + \dots + n \ge 100 $$

이 부등식을 만족하는 가장 작은 정수 (n)은 (n = 14)이다.


따라서 위와 같은 감소 단계 전략을 사용하면 최악의 경우 14번만에 임계 층을 정확히 찾을 수 있다.

Back to Blog

관련 글

더 보기 »

역괄호

기사 URL: https://kellett.im/a/inverse-parentheses 댓글 URL: https://news.ycombinator.com/item?id=46352248 포인트: 12 댓글: 7

코드 연대기

Advent of Code 2024 Day 25 https://adventofcode.com/2024/day/25 Part 1 한 해를 마무리하는 멋진 방법. 재미있는 도전처럼 보이며, 시도해볼 생각에 신이 난다.

100일 DSA 코딩 챌린지의 78일차

새로운 도전에 도전합니다: GeeksforGeeks POTD를 매일 풀고 내 솔루션을 공유합니다! 💻🔥 목표: 문제 해결 능력을 갈고닦고, 코딩 실력을 레벨업하며, 배우는 것.