Skip to content

Conversation

@0224LJH
Copy link
Contributor

@0224LJH 0224LJH commented Sep 20, 2025

🧷 문제 링크

https://www.acmicpc.net/problem/2758

🧭 풀이 시간

30분

👀 체감 난이도

✏️ 문제 설명

선영이는 매주 엄청난 돈을 로또에 투자한다. 선영이가 하는 로또는 1부터 m까지 숫자 중에 n개의 수를 고르는 로또이다.

이렇게 열심히 로또를 하는데, 아직까지 한 번도 당첨되지 않은 이유는 수를 고를 때 각 숫자는 이전에 고른 수보다 적어도 2배가 되도록 고르기 때문이다.

예를 들어, n=4, m=10일 때, 선영이는 다음과 같이 고를 수 있다.

1 2 4 8
1 2 4 9
1 2 4 10
1 2 5 10
따라서 선영이는 로또를 4개 산다.

선영이는 돈이 엄청나게 많기 때문에, 수를 고르는 방법의 수 만큼 로또를 구매하며, 같은 방법으로 2장이상 구매하지 않는다.

n과 m이 주어졌을 때, 선영이가 구매하는 로또의 개수를 출력하는 프로그램을 작성하시오.

🔍 풀이 방법

원래는 dfs로 백트래킹 방식으로 구현하다가 시간초과가 나서 방법을 변경하였다.
그래서 dp로 변경해서 top-down 식으로 푸는 것으로 해결.
이때 long으로 해야 정상적인 결과가 나온다.

⏳ 회고

@0224LJH 0224LJH added the success 👍 해설을 보지 않고 풀었을 때 label Sep 20, 2025
@ShinHeeEul ShinHeeEul merged commit 6075bad into main Sep 20, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants