Baekjoon Online Judge(BOJ)

Baekjoon 2914번 : 저작권 (Python)

Dev.sleep_soo 2024. 6. 3. 21:18

 

Question

 

Answer

 

A, I = map(int, input().split())
B = A * (I-1)
print(B+1)

 

 

Explanation

 

이번 문제는 조금 이해가 안돼서 오래 생각했던 것 같습니다.

평균값 = 저작권이 있는 멜로디의 개수 / 앨범에 수록된 곡의 개수

위와 같은 식이 주어졌으므로,

저작권이 있는 멜로디의 개수 = 평균값 * 앨범에 수록된 곡의 개수

이렇게 정의할 수 있는거죠

 

A는 곡의 개수, I는 평균값이며

B는 저작권이 있는 멜로디의 개수입니다.

위에서 말한 식을 다시 적어볼까요?

I = B / A

B = I * A

 

그런데 제가 왜 코드에는 B = A*(I-1)이라고 적었을까요?

문제를 보시면 평균값은 항상 올림해서

정수로 만들어준다고 하는것을 볼 수 있습니다.

그래서 사실은 단순히 I = B / A가 아니라

I = (B / A)올림 이런식으로 생각해야하는 것이죠

따라서 I는 이미 올림이 된 숫자이니까 -1을 해주는 것입니다.

 

마지막으로 print(B)가 아니라 print(B+1)을 해준 이유는

'적어도' 몇곡 이냐는 문제이기 때문입니다.

최솟값 개념으로 접근해서 부등호를 그려주면 

단순히 B가 아닌 B+1을 출력해야 합니다:)