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을 출력해야 합니다:)