• 티스토리 홈
  • 프로필사진
    홀쑥
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
홀쑥
  • 프로필사진
    홀쑥
    • 분류 전체보기 (57)
      • Language & Framework (14)
        • Java (1)
        • Python (13)
      • DataBase (4)
        • NoSQL (1)
        • RDBMS (3)
      • Big Data & Ecosystem (9)
        • Hadoop (5)
        • Hive (2)
        • Sqoop (1)
        • Zeppelin (1)
      • Data Engineering (1)
        • Airflow (1)
      • Cloud & DevOps (1)
        • AWS (0)
        • GCP (1)
      • Monitoring & Logging (2)
        • ElasticSearch (2)
      • Infrastructure (12)
        • OS (12)
        • Docker (0)
        • Kubernetes (0)
      • Algorithm & CS (7)
        • 백준 알고리즘 (6)
      • Troubleshooting (5)
        • 오류 모음 (5)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # 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줄이면 끝나던데.. 대단하시다들

         

        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바