[백준] 1748번(수 이어 쓰기 1)

·2023년 7월 3일

백준 문제풀이

목록 보기
96/159

백준 1748번


최종 제출 코드

N = int(input())

def solution(number):
  square = 1
  result = 0
  while True:
    num = 10**square - 10**(square-1)
    
    if number < num:
      result += number*square
      return result
    else:
      result += num*square
      number -= num
      
    square+=1

print(solution(N))

◼ 입력값 N내에 n자리 자연수가 몇개 있는지 검사

  • 1~99개, 10~9990개, 100~999900개, ...
    (10-1)개, (100-10)개, (1000-100)개, ...
    (10**1-10**0)개, (10**2-10**1)개, (10**3-10**2)개, ...

◼ 해당하는 수에 자릿수 곱하기

  • square 값을 자릿수의 개수에 곱해주면 됨
  • 그 값을 result 변수에 더하기

number값 업데이트

  • 반영된 숫자들은 제거하고 다음 반복문 진행
  • 만약 numbernum보다 작다면 거기서 반복문이 종료됨으로 number값을 별도로 업데이트 하지 않고, result값만 갱신시켜줌
profile
백엔드 개발자가 되고 싶어요(22.8.15~)

0개의 댓글