728x90
반응형
n = input()
if len(n) == 1: # n이 한자릿수 라면 앞에 0을 붙인다
n = '0' + n
cnt = 0 # 횟수를 세는 변수
num = n
while True:
num = num[1] + str(int(num[0]) + int(num[1]))[-1] # 새로운 수 제작
cnt += 1 # 제작할 때마다 카운트 + 1
if num == n: # n과 같아지면 break
break
print(cnt)
n으로 새로운 수를 제작하여, 몇 번 새로운 수를 만들어야 다시 n으로 돌아오는지 출력하는 문제이다.
n은 1~99 의 범위에서 주어진다. 예를 들어 26이 주어졌다면,
26의 오른쪽 자리인 "6", 그리고 각 자리를 합한 수의 오른쪽 자리인 2+6="8" 두개를 더하여 "68"을 만들어 낸다.
같은 방법으로 새로운 수를 계속 만들며, 처음 주어진 n과 같은 수가 나왔다면 반복을 종료하고 횟수를 출력한다.
난 n을 문자열로 변환하여 문제를 풀었는데, 숫자 상태로 26 // 10 , 26 % 10 이런 식으로 십의 자리와 일의 자리를 구하는 방법도 존재한다. 근데 문자열 방식이 더 간결한 것 같다.
728x90
반응형
'Algorithm > 문자열' 카테고리의 다른 글
[Baekjoon/JAVA] 백준 1032번 명령 프롬프트 (0) | 2023.06.30 |
---|---|
[Baekjoon/JAVA] 백준 10988번 팰린드롬인지 확인하기 (0) | 2023.06.30 |
[Baekjoon/JAVA] 백준 9086번 문자열 (0) | 2023.06.30 |
[Baekjoon/JAVA] 백준 25314번 코딩은 체육과목 입니다 (0) | 2023.06.27 |
[Baekjoon/JAVA] 백준 2439번 별 찍기 - 2 (0) | 2023.06.26 |