[실버 1] 백준 27970 - OX (파이썬)
글 작성자: pental
https://www.acmicpc.net/problem/27970
풀이
- 문자열 S가 주어집니다. S는 'O'와 'X'로만 구성되어 있다.
- 우리는 문자열 내 'O'들이 가지는 “가중치 합”을 구해야 한다.
- 'O'가 있는 위치의 2의 거듭제곱 값을 더한다.
- 결과는 1,000,000,007 (10^9 + 7) 로 나눈 나머지를 출력한다.
✅ 풀이 로직
- power는 현재 인덱스의 2의 거듭제곱 값을 의미한다.
- 예를 들어, 인덱스 0: 2^0, 인덱스 1: 2^1, …, 인덱스 i: 2^i
- 문자열을 왼쪽부터 오른쪽으로 순회하면서
- 만약 해당 문자가 'O'라면, answer에 현재의 power 값을 더한다.
- 그 후 power *= 2 로 2의 거듭제곱을 갱신한다.
- 중간중간 mod 연산으로 값을 줄여준다.
코드
# 백준 27970 - OX
# 분류 : 수학
S = input()
mod = int(1e9 + 7)
answer = 0
power = 1
for i in range(len(S)) :
if S[i] == "O" :
answer += power
answer %= mod
power *= 2
power %= mod
print(answer)
'Programming > 백준' 카테고리의 다른 글
[골드 4] 백준 5639 - 이진 검색 트리 (파이썬) (0) | 2025.05.08 |
---|---|
[골드 5] 백준 1916 - 최소비용 구하기 (파이썬) (0) | 2025.05.08 |
[실버 1] 백준 1697 - 숨바꼭질 (파이썬) (0) | 2025.05.08 |
[실버 2] 백준 15666 - N과 M (12) (파이썬) (0) | 2025.05.07 |
[실버 2] 백준 16953 - A → B (파이썬) (0) | 2025.05.07 |
댓글
이 글 공유하기
다른 글
-
[골드 4] 백준 5639 - 이진 검색 트리 (파이썬)
[골드 4] 백준 5639 - 이진 검색 트리 (파이썬)
2025.05.08 -
[골드 5] 백준 1916 - 최소비용 구하기 (파이썬)
[골드 5] 백준 1916 - 최소비용 구하기 (파이썬)
2025.05.08 -
[실버 1] 백준 1697 - 숨바꼭질 (파이썬)
[실버 1] 백준 1697 - 숨바꼭질 (파이썬)
2025.05.08 -
[실버 2] 백준 15666 - N과 M (12) (파이썬)
[실버 2] 백준 15666 - N과 M (12) (파이썬)
2025.05.07