반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 도커 컨테이너
- 지도자동구축 파이썬
- 등수매기기 파이썬
- 백준 점프 파이썬
- 파이썬데이터분석라이브러리
- 백준 바이러스
- 백준 등수매기기
- CRUD
- 백준 전쟁 파이썬
- 1987파이썬
- 백준 평범한배낭
- express
- 프로그래머스
- 금고털이 파이썬
- 백준알파벳파이썬
- 소프티어 장애물인식프로그램
- 백준 예산
- MongoDB
- 소프티어 지도자동구축
- 파이썬 평범한배낭
- 장애물인식프로그램 파이썬
- 백준
- MySQL완전삭제
- jenkins
- 백준 A->B
- 피아노체조 파이썬
- 백준 피아노체조
- 백준 전쟁-전투
- 백준 점프
- express mongodb
Archives
- Today
- Total
바위 뚫는중
[소프티어] Lv2. 바이러스 본문
반응형
2️⃣ 바이러스
소프티어에서 유명한 문제라고해서 풀어봤다!
💡아이디어
숙주의 몸속에서 1초당 P배씩 증가!
K마리가 있었다면 N초 후에는 몇마리?!
예시를 들어
2마리가 있는데 1초당 3배씩 증가하고 2초후에는..?
2 → 6 → 18
즉, k → k * p → k * p * p n만큼 이를 반복한다
📝 풀이
오버플로우 등을 고려하지 않은 틀린 풀이
k, p, n = map(int, input().split())
ans = 0
for i in range(n):
ans += k*p*(i+1)
print(ans % 1000000007)
처음에는 순전히 답의 나머지를 구하면 된다고 생각했는데
그렇게 되면 연산이 진행되는 와중에도 값이 너무 커져서 오버플로우가 발생한다.
중간에도 큰수로 나눈 나머지로 값을 지정해놓고 연산을 진행해야한다.
정답 풀이
k, p, n = map(int, input().split())
for i in range(n):
k = k * p
k = k % 1000000007
print(k % 1000000007)
반응형
'Algorithms > 소프티어' 카테고리의 다른 글
[소프티어] Lv2. 지도 자동 구축 (0) | 2023.11.21 |
---|---|
[소프티어] Lv2. 금고털이 (0) | 2023.11.21 |
[소프티어] Lv2. GBC (0) | 2023.11.21 |
[소프티어] Lv2. 전광판 (0) | 2023.11.06 |
[소프티어] Lv3. 성적평균 (0) | 2023.11.03 |