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 |
Tags
- Classification
- 25977
- Australian Voting
- God of Mine
- blobaww
- Fitmong
- BOJ
- 홀수 홀릭 호석
- 7626
- 25195
- k개 사과 트리 노드만으로 배를 최대로 수확하기
- 외국어이름
- 24501
- MemoSprint
- TripGuard
- 숫자 맞추기
- 백준
- 소프트웨어마에스트로
- 1인개발
- 34031
- TaskQ
- barin tumor
- 개발
- 소마
- 하이터치☆메모리
- 알고리즘
- 2494
- AI
- paper
- 2085
Archives
- Today
- Total
iwanabethedev 님의 블로그
[20164] 홀수 홀릭 호석 본문
수를 자르고 더해서 홀수가 몇 개 나올 수 있는지를 묻는 문제.
수를 자리별로 자르기 때문에, 수의 범위가 커도 실제 연산 횟수 자체는 많지 않다는걸 알고 있다면, 브루트포스로 풀 수 있는 문제라 생각했다.
더보기
import sys
from itertools import combinations
input = sys.stdin.readline
def recur(n, v):
tmp = 0
for nn in n:
if int(nn) % 2: tmp += 1
if len(n) == 1:
global min_ans, max_ans
min_ans = min(min_ans, v+tmp)
max_ans = max(max_ans, v+tmp)
return
elif len(n) == 2:
recur(str(int(n[0]) + int(n[1])), v+tmp)
else:
candidates = list(combinations(range(1, len(n)), 2))
for i, j in candidates:
recur(str(int(n[:i]) + int(n[i:j]) + int(n[j:])), v+tmp)
def solve():
N = input().rstrip()
global min_ans, max_ans
min_ans, max_ans = float("inf"), -float("inf")
recur(N, 0)
print(min_ans, max_ans)
return
def main():
solve()
return
if __name__ == "__main__":
main()

'알고리즘' 카테고리의 다른 글
| [boj 25195] Yes or yes (0) | 2026.03.28 |
|---|---|
| [boj 7626] 직사각형 (0) | 2026.03.27 |
| [boj 25977] k개 사과 트리 노드만으로 배를 최대로 수확하기 (0) | 2026.03.25 |
| [boj 34031] 하이터치☆메모리 (0) | 2026.03.24 |
| [boj 4013] ATM (0) | 2026.03.23 |
