

1. 문제 풀이 아이디어
- 경우의 수를 계산하여 문제를 해결할 수 있다.
2. 나의 정답 코드
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bufferedReader.readLine());
double result = 0;
for (double i = 0; i < n; i++) {
result += n / (n - i);
}
System.out.println(result);
bufferedReader.close();
}
}
3. 정리
- 경우의 수는
1 - (원하는 종류 / 전체 종류)
이므로, 식은1 - i / n
으로 표현할 수 있다.
- 문제에서 필요한 씨앗의 개수를 구해야 하므로, 경우의 수의 역수를 계산해야 한다.
- 필요한 씨앗의 개수는
1 / (1 - i / n)
이다.
- 이 식을 정리하면
n / (n - i)
가 되고, 이를0
부터n - 1
까지 순회하며 더하여 문제를 해결한다.
Share article