본문 바로가기
Develop/Algorithm

a를 b로 나눈 수를 올림할 때,

by jaeyoungb 2022. 10. 23.

알고리즘 문제를 풀다가, a를 b로 나눈 수를 올림하는 과정이 필요했다.

 

항상 반올림, 올림, 내림할 상황이 생기면, Math 클래스의 메서드를 이용하곤 했다.

Math.round(), Math.ceil(), Math.floor() 순서대로 반올림, 올림, 내림

 

 

그러나, 다른 분들이 푸신 풀이 중에 올림하는 과정을 수식으로 나타내서 코드의 실행 시간을 줄이는 걸 볼 수 있었다.

 

정수 a를 정수 b로 나눈 수를 올림한 수가 필요할 때, 다음과 같이 작성하면 될 것 같다.

 

(a + b - 1) / b

 

모든 올림의 과정에 쓰일지는 모르겠지만, 정수 a를 b로 나눈 올림 수가 필요할 때, Math.ceil() 메서드 대신 써보려고 한다.

 

왜 이렇게 쓰일 수 있는지, 다른 상황에서도 쓰일 수 있는지는 계속 알고리즘 문제를 풀면서 알아볼 수 있을 것 같다.

(기본 수학 원리인데, 나만 모르는 건가..,)

 

정확한 정보가 아니므로, 적용시킨 결과가 맞는지 확인 후에 참고해 사용해야할 것 같다.

 

틀린 부분이 있거나 이견이 있으시다면, 언제든 피드백 환영합니다.