백준 4375번 문제 바로가기

내가 겪은 문제점들

  • EOFerror 발생 -> try & except로 예외 처리

내 제출

while True:
  try:
    n = int(input())
    target = 1
    temp = 1
    while True:
      if target % n == 0:
        print(temp)
        break
      else:
        target += 10 ** temp
        temp += 1
  except:
    break

고칠 부분

  1. temp을 쓰지 않고도 해결 가능
    • target = target * 10 + 1로도 해결 가능하고
    • target = ‘1’ 로 놓고 target = target + ‘1’ 한 뒤에 int()처리하면 깔끔해짐
  2. while 안에 if, else로 나눌 필요 없이 while 한줄로 줄일 수 있음
    • while target % n > 0: 이렇게 처리하면 if else 나눌 필요 없이 한큐에 해결가능
  3. 숏코딩을 살펴보면 for i in open(0): 나 for n in sys.stdin: 같이 계속해서 input을 받아들이는 표현들을 익히자!