파이썬 백준 2231번
브론즈2
https://www.acmicpc.net/problem/2231
문제 보기
분류 브루트 포스
문제 풀기
어떻게 접근할까 생각해 보았으나 역시나 브루트 포스 분류답게 작은 수 1 부터 시작하여 만족하는 해당 조건이 나올때까지 숫자를 대입한다.
N = abc + a + b + c 를 만족하는 abc 가 나올때까지 숫자 abc 대입.
N_check = M + sum(map(int, str(M)))
int M 을 str 을 적용하여 각 문자로 분리하고 그 개별 문자화된 숫자를 다시 int 로 변환하여 sum() 과 M 의 합을 진행한다.
input 으로 들어온 N 과 계산 조건으로 밝혀진 N_check 값이 같으면 프린트.
제일 작은 수만 찾으면 되기때문에 이후 반복문은 필요없어 break 추가한다.
코드 보기
import sys
inputdata = sys.stdin.readline
N = int(inputdata().strip())
for M in range(1, N + 1):
N_check = M + sum(map(int, str(M)))
if N_check == N:
print(M)
break
if M == N:
print(0)
# 1026
# 999
'공부하기 > 백준' 카테고리의 다른 글
[Python] 백준 풀기 1931 - 회의실 배정 (0) | 2022.10.07 |
---|---|
[Python] 백준 풀기 11047 - 동전 0 (0) | 2022.10.06 |
[Python] 백준 풀기 2559 - 수열 (0) | 2022.10.04 |
[Python] 백준 풀기 1904 - 01타일 (2) | 2022.09.30 |
[Python] 백준 풀기 9184 - 신나는 함수 실행 (0) | 2022.09.29 |