728x90
https://softeer.ai/practice/info.do?idx=1&eid=407&sw_prbl_sbms_sn=117912
Softeer
연습문제를 담을 Set을 선택해주세요. 취소 확인
softeer.ai
이 문제는 좀 짚고 넘어가야 하는게 있습니다.
단순한 거듭제곱에 대한 문제인데 for 문이나 pow함수로 거듭제곱을 표현한다면 시간복잡도가 O(n)이 됩니다.
이를 해결하기 위해서는 pow함수 자체를 알아보았다.
- pow함수 자체에 대한 개념
https://deok2kim.tistory.com/88
[python] pow, 제곱, 거듭제곱과 나머지
📗 파이썬에서 거듭제곱과 나머지를 구할 때! 속도 차이 🔵 pow(a,b) vs a**b 100의 100승을 구할 때 입력 방법 속도 100**100 0.8038559000000001 pow(100, 100) 0.8454946999999997 - 거듭제곱을 했을 때는 ** 을 쓰는것
deok2kim.tistory.com
위의 블로그를 참고하면
100의 100승을 100으로 나눈 나머지를 구할 때
pow(100,100,100)으로 구현하면 된다. 이떄 놀라운 사실은 단순히 100**100%100과 100**100보다 훨씬 빠르다는 것이다.
그래서 pow함수를 사용할때 나머지도 같이 적어주었다.
1
2
3
4
5
6
|
import sys
#sys.stdin = open("input4.txt","r")
k,p,n = map(int,sys.stdin.readline().split())
print((k * pow(p, n, 1000000007))%1000000007)
|
cs |
728x90
'코딩테스트 > softeer' 카테고리의 다른 글
[python] Level2_GBC (0) | 2023.01.04 |
---|---|
[python] Level2_회의실 예약 (1) | 2023.01.03 |
[python] Level2_비밀 메뉴 (0) | 2023.01.03 |
[python] Level2_지도 자동 구축 (0) | 2023.01.01 |
[python] Level2_8단 변속기 (0) | 2023.01.01 |
댓글