• 티스토리 홈
  • 프로필사진
    홀쑥
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
홀쑥
  • 프로필사진
    홀쑥
    • 분류 전체보기 (55)
      • Language (14)
        • Java (1)
        • Python (13)
      • DataBase (4)
        • NoSQL (1)
        • RDBMS (3)
      • OS (12)
        • Linux (10)
      • Etc (5)
        • 오류 모음 (5)
      • hadoop ecosystem (9)
        • Hadoop (4)
        • Hive (2)
        • Sqoop (1)
        • Zeppelin (1)
      • Cloud Service (0)
      • ELK STACK (2)
        • ElasticSearch (2)
      • Airflow (0)
      • Infra (0)
        • Docker (0)
        • Kubernetes (0)
      • Algorithm & Data Structure (7)
        • 백준 알고리즘 (6)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • [백준 알고리즘] 2231번 문제 분해합 구하기 Python
        2021년 02월 02일
        • 홀쑥
        • 작성자
        • 2021.02.02.:49

        백준 알고리즘 2231번 문제 분해합구하기

        2231번 문제 분해합 구하기이다.

         

        구하려고 하는 수가 M이다.

        어떤 자연수 N이 있을 때, 그 자연수의 분해합은 N은 M + M의 각 자리수별 숫자 를 더한 값이다.

         

        1 <= N <= 1,000,000 이 주어지고 그에 맞는 M을 구하는 문제이다.

        import sys
        
        def getChar(M):
            sub_str_M_list = []
            while M:
                sub_str_M_list.append(int(M % 10)) 
                M = int(M / 10)
            return sum(sub_str_M_list)
                
        
        def processing(N, M):
            result_M = 0
            for sub_M in range(M,N):
                if sub_M + getChar(sub_M) == N : result_M = sub_M
                else : continue
                break
            
            print(result_M)
        
        def main(): 
            N = sys.stdin.readline().strip()
            int_N = int(N)
            if int_N > 10 :
                start_M = int_N - (len(N) * 9)
            else :
                start_M = 1
            processing(int_N, start_M)
        
        if __name__ == '__main__':
            main()

         

        나는 in으로 들어온 숫자에 대해 M이 될수 있는 값의 최소를 지정하고 그 최소부터 계산하여 가장 먼저 N과 계산값이

        같아지는 수를 출력했다.

         

        다른 분들의 코드를 보니 2줄이면 끝나던데.. 대단하시다들

         

        'Algorithm & Data Structure > 백준 알고리즘' 카테고리의 다른 글

        [백준 알고리즘] 1018번 체스판 다시 칠하기 Python  (0) 2021.02.16
        [백준 알고리즘] 2869번 달팽이는 올라가고 싶다 Java  (0) 2020.06.15
        [백준 알고리즘] 1193번 분수찾기 Java  (0) 2020.06.15
        [백준 알고리즘] 2839번 설탕 배달 Java  (0) 2020.06.15
        [백준 알고리즘] 1712번 손익 분기점 Java  (0) 2020.06.15
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바