백준 알고리즘 3단계 (반복문)

김형준·2022년 4월 7일
0
  • 새로 배운 내용

1) 10871번 - 한 줄에 여러 값을 받아 리스트 혹은 맵에 담는 법

import sys

N, X = map(int, sys.stdin.readline().split())
num = list(map(int, sys.stdin.readline().split()))

for i in range(N):
    if num[i] < X:
        print(num[i], end = ' ')

2) 10952번 - while 사용법

#내가 작성한 코드
import sys

valid = False

while valid == False:
    a, b = map(int, sys.stdin.readline().split())
    if a + b == 0:
        valid = True
    elif a + b != 0:
        print(a + b)
        
# 구글링하여 참고한 다른 사람의 코드
# while 1: 은 break 나오기 전까지 무한 반복임
while 1:
    a,b = map(int, sys.stdin.readline().split())
    if(a + b == 0):
        break
    else:
        print(a+b)

3) 10951번 - EOF (End Of File) - 입력이 끝날 때까지 반복 시 예외처리 필요

#예외 처리를 안할 시 런타임 에러가 발생한다.
import sys

while 1:
    try:
        a,b = map(int, sys.stdin.readline().split())
        print(a+b)
    except:
        break

4) 1110번 - 조건이 많은 반복문

import sys

a = list(map(str, sys.stdin.readline().split()))
a = a[0]

# 함수 정의하여 재사용
def fuction(a, i, NewVal, ChangeVal):
    while True:
        if int(a) != NewVal:
            b = str((int(ChangeVal[0]) + int(ChangeVal[-1])))[-1]
            c = int(ChangeVal[-1] + str(b)[-1])
            NewVal = c
            ChangeVal = str(c)
            if int(ChangeVal) < 10:
                ChangeVal = '0' + ChangeVal
            i += 1
        else:
            print(i)
            break

if int(a) >= 10:
    i = 0
    # NewVal은 새로 만들어진 값을 저장하여 원래 값과 비교, ChangeVal은 새로 만들어진 값을 저장하여 새로운 값을 생성하는 데 쓰임
    NewVal = -1
    ChangeVal = a
    fuction(a, i, NewVal, ChangeVal)

elif int(a) < 10:
    i = 0
    NewVal = -1
    ChangeVal = '0' + a

    fuction(a, i, NewVal, ChangeVal)
profile
BackEnd Developer

0개의 댓글