[백준 알고리즘] while문(1 ~ 3)

borderline0px·2021년 5월 17일
0

백준알고리즘

목록 보기
4/4

1단계(문제번호: 10952): A + B - 5

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

무한루프로 while문을 반복하고
조건에 따라 break를 통해 while문을 빠져나올 수 있다


2단계(문제번호: 10951): A + B - 4

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

수가 입력되지 않아서 error가 발생하면 while문을 빠져나갈 수 있도록 try-except구문을 활용

try-except구문

  • try구문에는 에러가 발생할 가능성이 있는 코드를 작성
  • break구문에는 에러 발생 시 실행한 코드를 작성해주면 됨
  • 좀 더 에러에 대비하기 위해서는 try-except-else-finally구문을 작성할 수도 있다고 함

(js의 try-catch-finally와 비슷한듯)


3단계(문제번호: 1110): 더하기 사이클

num = int(input())
check_num = num
cycle_count = 0
while True:
    ten = num // 10
    one = num % 10
    total = (ten + one)%10
    cycle_count += 1
    num = (one * 10 ) + total
    if(num == check_num):
        break
print(cycle_count)

결론적으로 난 한번에 이해하기 어려웠다,,,문제조차
다른 사람들의 풀이법을 보고 여러 번 작성해보니
문제에서 주어진 연산을 총 몇번하면 원래의 수로 돌아올 수 있는지에 관한 내용이었다😱

그렇기 때문에 무한루프를 돌다가 연산을 통해 만들어진 수(num)과 원래의 수(check_num)이
같아지면 break를 통해 while문을 빠져나오면 된다

최종적으로는 사이클 횟수를 출력하는 것이다

profile
어려운 게 아니라 낯설어서 그런거야

0개의 댓글