반응형
문제
2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오.
문제풀이
while True:
try:
n = int(input())
except:
break
x="1"
while True:
X = int(x)
if(X%n==0):
print(len(x))
break
else:
x +="1"
- 입력횟수가 정해지지 않았기에 while문을 사용하여 값이 멈출 때까지 입력 받는다.
이후 1로만 이루어진 값을 입력받은 값으로 나누었을 때 나누어 떨어지면 값을 출력하고
그렇지 않으면 1로만 이루어진 값을 점점 큰 숫자로 늘려간다.
+ 알고리즘 문제는 시간 제한이 있기에 단순히 brute force 형태로 코드를 짜면 "시간 초과"가 된다.
그렇기에 수학 문제는 수학을 이용하여 계산 횟수를 현저히 줄여, 시간 제한을 통과하여 풀어야 한다.
즉 시간 복잡도라는 개념을 이해하고 코드를 짜야하는 것이다.
'프로그래밍 > 백준' 카테고리의 다른 글
[알고리즘] 백준 10820 파이썬 - 문자열 분석 (0) | 2022.10.22 |
---|---|
[알고리즘] 백준 9093 파이썬 - 단어 뒤집기 (0) | 2022.10.21 |
[알고리즘] 백준 25576 파이썬 - 찾았다 악질 (2) | 2022.10.19 |
[알고리즘] 백준 22341 파이썬 - 사각형 면적 (0) | 2022.10.18 |
[알고리즘] 백준 25373 파이썬 - 벼락치기 (0) | 2022.10.17 |