BaekJoon - 1110번: 더하기 사이클(반복문, PYTHON)

2022. 9. 2. 19:58·Coding Test/BaekJoon_Python
728x90

문제 분석

정수 범위 = 0~99

만약 10보다 작은 수  a -> 0a(앞에 0을 붙인다. ex> 01, 02)

각 자리의 숫자를 더한다. ex) 26 => 2+6 = 8

더한 값이 두 자릿수이면 1의 자리만 남겨둔다 ex) 6+8 = 14 => 4

더한 숫자를 기존 숫자 뒤에 붙이고 기존 숫자의 제일 왼쪽 숫자를 없앤다. 268 => 68

이 과정을 반복하였을 때 원래 숫자로 돌아올 수 있는 사이클의 길이(반복한 횟수) N을 구해보자.

입력 -> 출력

  • 26 -> 4
  • 55 -> 3
  • 1   -> 60
  • 0   -> 1
  • 71 -> 12

출력 매커니즘(예시)

  • 26 -> 68
  • 68 -> 84
  • 84 -> 42
  • 42 -> 26
  • N = 4

유의사항(코드 설계)

  • 정수 형태의 수 A 입력
  • 결과값이 a일 경우 break를 거는 루프 시작
  • if문을 이용하여 수가 한 자릿수인 지 확인
  • 한자릿수의 경우에 뒤에 같은 수를 더하는 작업 진행
  • 두자릿수의 경우에 앞자리와 뒷자리를 더하고 그 값을 a의 뒤에 붙여넣고 앞자리 탈락시키는 과정 추가(result에 갱신)
  • 사이클의 길이 N 1 증가
  • break로 빠져나온 뒤에 N 출력

사용할 문법

  • while
  • if
  • map
  • print
  • 자릿수 나누기(a/10, a%10)

정답코드

#0~99사이의 변수 A 입력
A = int(input())
B = 0
N = 1
A1 = int(A % 10)
A10 = int(A/10)
#반복문 형성(사이클 구성문), 사이클 길이 N 추가
while A != B:
    #A가 두 자릿수일 때
    if A/10 > 0:
        #B는 A의 1의자리가 10의자리로 가고 10의자리 수는 없어지며
        #각 자릿수를 더한 값의 1의 자리가 새로운 1의자리수가 된다
        B = int(A1*10 + (A1 + A10)%10)
    else:
        #A가 한 자릿수일 때
        #같은 숫자 뒤에 붙이기
        B = A1*10 + A1
    A1 = int(B % 10)
    A10 = int(B/10)
    #A와 B가 같을 때 종료
    if A == B:
        break
    N += 1
#사이클의 길이 N 출력
print(N)

코드 실행 예 1
실행 예2

728x90
저작자표시 비영리 변경금지 (새창열림)

'Coding Test > BaekJoon_Python' 카테고리의 다른 글

BaekJoon - 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰(차이 계산, PYTHON)  (0) 2022.09.03
BaekJoon - 25304번: 영수증(반복문, PYTHON)  (0) 2022.09.02
BaekJoon - 10951번: A+B - 4(반복문, PYTHON)  (0) 2022.06.23
BaekJoon - 10952번: A+B - 5(반복문, PYTHON)  (0) 2022.06.23
BaekJoon - 25083번: 새싹(특수 문자, PYTHON)  (0) 2022.06.23
'Coding Test/BaekJoon_Python' 카테고리의 다른 글
  • BaekJoon - 3003번: 킹, 퀸, 룩, 비숍, 나이트, 폰(차이 계산, PYTHON)
  • BaekJoon - 25304번: 영수증(반복문, PYTHON)
  • BaekJoon - 10951번: A+B - 4(반복문, PYTHON)
  • BaekJoon - 10952번: A+B - 5(반복문, PYTHON)
ThreeLight
ThreeLight
ThreeLight Studio의 블로그, TimeMap.exe에 오신 것을 환영합니다.
  • ThreeLight
    TimeMap.exe
    ThreeLight
  • 전체
    오늘
    어제
    • 분류 전체보기 (245)
      • Checkpoint (1)
      • (3D)Dev Deep Dive (0)
        • Templates & Guides (9)
        • Frontend origin (9)
        • Backend origin (1)
        • TroubleShootings (4)
      • Development Study (95)
        • Frontend (36)
        • Backend (21)
        • CS(Computer Science) (2)
        • Background Knowledges (11)
        • Algorithm (2)
        • Mobile (3)
        • AWS (6)
        • Python (6)
        • MSW(MapleStoryWorlds) (8)
      • Coding Test (59)
        • 문제.zip (1)
        • BaekJoon_JavaScript (0)
        • Programmers_JavaScript (9)
        • BaekJoon_Python (23)
        • Programmers_Python (10)
        • Undefined_Python (3)
        • Programmers_SQL (13)
      • 활동내역.zip (43)
        • 개인 (21)
        • Techeer (12)
        • Bootcamp (7)
        • Hackathon (1)
        • TeamProjects (2)
      • 여기 괜찮네??(사이트 | App) (5)
      • 재미있는 주제들 (8)
      • 개발 외 공부 저장소 (11)
        • 생산운영관리 (3)
        • 생활속의금융 (6)
        • 경영정보시스템 (2)
  • 링크

    • TimeMap.dmg (Portfolio)
    • GitHub 바로가기
    • 오픈프로필(카카오톡)
    • Medium 바로가기
    • Disquiet 바로가기
    • LinkedIn 바로가기
  • 인기 글

  • 태그

    Python
    CSS
    HTML
    SQL
    react
    Baek Joon
    programmers
    프로그래머스
    JavaScript
    TypeScript
  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.1
ThreeLight
BaekJoon - 1110번: 더하기 사이클(반복문, PYTHON)
상단으로

티스토리툴바