728x90
반응형
문제 설명
1. A, B, C가 주어진다.
2. A를 B만큼 곱하고 이를 C로 나누는 문제이다.
풀이 과정
1. 당연히 그냥 구하면 터진다.
2. 이걸 생각하면 쉽다.
A^16 = (((A^2)^2)^2)^2
A^17 = A*(((A^2)^2)^2)^2
3. long형 함수에 B번 반복하기 위해 B를 인자로 넣고 재귀함수를 돌린다.
4. 그 다음 재귀에서 구해진 값을 재곱하고 C로 나누는 것을 반복하면 된다.
5. 그리고 인자가 홀수가 되면 그냥 A를 곱해주면 되는데, 이 이유는 홀수 인자를 갖는 경우는 재귀함수가 인자 1을 가질때까지 반복되거나, 시작할 때 홀수인 경우 두 개 밖에 없기 때문이다.
6. 조금만 생각하면 쉽게 구현할 수 있는 문제이지만, 아이디어를 구현하는것에서 문제가 생기면 오래 걸릴 수 있을 것 같다.
코드
반응형
'알고리즘 공부' 카테고리의 다른 글
[프로그래머스] 행렬 테두리 회전하기 - java (0) | 2021.12.11 |
---|---|
[백준 2668번] 숫자고르기 - java (0) | 2021.12.02 |
[백준 16929번] Two Dots - java (0) | 2021.11.27 |
[백준 1018번] 체스판 다시 칠하기 - java (0) | 2021.11.21 |
[프로그래머스] H-Index- java (0) | 2021.11.20 |