개발 노트/알고리즘 문제
백준 4375 1
LeeInGyu
2025. 3. 22. 22:52
백준 4375 1
링크: 4375 1
접근 방법
- 2, 5와 나누어 떨어지지 않는 수
- 1 or 11 or 111인 n의 배수
- 반복문을 어떻게 쓰느냐에 따라서 시간초과가 발생할 것
소스 코드 1 (시간 초과)
소스 코드 1: 91844390 제출
for _ in range(3):
n = int(input())
target = 1
length = 1
value = n
while True:
if value > target:
target = target * 10 + 1
length += 1
if value == target:
break
value += n
print(length)
- 시간초과 발생 후 다시 생각해보니 % 연산자를 사용하면 될 것 같았다...
소스 코드 2
소스 코드 2: 91844941 제출
import sys
for line in sys.stdin:
n = int(line.strip())
target = 1
length = 1
while (target % n):
target = target * 10 + 1
length += 1
print(length)
- 추가로 더 알아보니 EOF를 읽을 수 있게 구현해야 한다고 한다.
결론
- 의미없는 조건문을 넣어서
- EOF를 읽는 코드를 작성하지 않았음(for _ in range(3) 처럼 코드를 작성했었다...)
- 이렇게 애매한 문제는 EOF를 읽도록 하는 것임을 명심하자..
728x90
반응형