백준
1110번: 더하기 사이클
bingual
2022. 2. 15. 09:59
반응형
풀이
본문에 예제 식을 어떤방법으로 구현할지의 방법을 논하는 문제.
26을 입력받았을때 (26 % 10 * 10)을 하면 60이 나오고 (26 / 10 + 26 % 10)을 하게 되면 8이 나오므로 두값을 더하면 예제의 식으로 만들 수 있는 26의 새로운 수 68이 나오게 되고 그값은 다시 n이된뒤 이과정을 반복할때마다 카운트한다.
(n / 10) + (n % 10)에 결과의 수가 10보다 크다면 10으로 나눠서 한자릿수로 만들어 줘야하기때문에 ((n / 10) + (n % 10) % 10)을한다.
자바
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int result = n;
int cnt = 0;
while (true) {
n = ((n % 10) * 10) + (((n / 10) + (n % 10)) % 10);
cnt++;
if (result == n) {
break;
}
}
System.out.println(cnt);
}
}
파이썬
n = int(input())
result = n
cnt = 0
while True:
n = ((n % 10) * 10) + (((n // 10) + (n % 10)) % 10)
cnt+=1
if result == n:
break
print(cnt)