Data Scientist 옌

매일 발전하는 IT문제해결사

Programing 프로그래밍/코딩테스트 문제풀이

[백준] 4단계: while문

옌炎 2022. 1. 21. 09:33
728x90

1. [10952] A+B-5

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 입력의 마지막에는 0 두 개가 들어온다.

while True:
    A, B = map(int, input().split())
    if A == 0 and B == 0:
        break
    else:
        print(A+B)

2. [10951] A+B-4

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

while True:
    try:
        A, B = map(int, input().split())
        print(A+B)
    except:
        break

3. [1110] 더하기 사이클

0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오.

num = N = int(input())
cnt = 0

while True:
    a = num // 10
    b = num % 10
    c = a+b
    if c >= 10:
     	c = c % 10
    num = b*10+ c
    cnt +=1
    if num == N:
    	break

print(cnt)
728x90