Computer Science/Algorithm

BOJ 26217: 별꽃의 세레나데 (Easy)

무니화니 2022. 12. 18. 19:36

간단한 수학적 계산을 요구하는 문제다.

출처: 

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

 

n=int(input())
answer=0
for i in range(1,n+1):
    answer+=(n/i)
print(answer)

정답 코드입니다.

예제 2번 밑의 부연설명과 같게, 

씨앗의 개수가 n개라면,

당연히 1회차에는 n개 중 1개의 씨앗을 뿌리는 확률은 1 (n/n)입니다.

2회차에는 1회차에 뿌린 씨앗이 아닌 다른 씨앗을 뿌려야 하기에, 이에 대한 확률은 (n-1)/n입니다.

그렇기에 위 수의 역수인 n/(n-1)개의 씨앗을 뿌려야 합니다.

위와 같은 방식으로 확률들의 역수들을 더해주면 됩니다.