-
[Python_Algorithm]반복 과정에서 조건 판단하기 3(자료구조와 함께 배우는 알고리즘 입문)Python/Algorithm 2021. 1. 9. 11:43
*를 n개 출력하고 w마다 줄바꿈하는 두가지의 방법이 있다.
방법1.
# *를 n개 출력하되 w개마다 줄바꿈하기1 print('*를 출력합니다.') n = int(input('몇개를 출력할까요?')) w = int(input('몇개마다 줄바꿈할까요?')) for i in range(n): print('*',end='') if i % w == w -1: print() if n % w: print()
방법1은 for 문안에 if가 들어가 있기에 for 문이 실행될 때마다 if문도 실행되게 된다
i는 0부터 시작하기에 i%W(나머지) 가 w-1과 같을때 줄바꿈을 하게 된다.
마지막 단락의 if 문은 n이 w의 배수가 아닌 수일때 나머지 부분의 계산을 하여 줄바꿈을 한다.
:0을 제외한 숫자는 true 니까 맨 밑에 부분이 0이 아닌이상 개행이 이뤄진다.(배수가 아닌이상)
위의 for문에서
일단 n번만큼 for문이 실행되기에 효율적이지 못하다.
방법2.
# *를 n개 출력하되 w개마다 줄바꿈하기2 print('*를 출력합니다') n=int(input('몇 개를 출력할까요?:')) w=int(input('몇 개마다 줄바꿈할까요?:')) for _ in range(n//w): #n//w 번 반복 print('*'*w) rest = n%w if rest: print('*'*rest)
방법2는 for문의 반복 횟수부터 차이가 난다.
n//w 몫만큼 반복하도록 하였고 반복문 안에 줄에 나오는 *가 모두 출력되어지기 때문에 반복 횟수가 훨씬 줄어든다.
배수가 아닌 경우의 나머지는 rest에서 해결해준다.
rest 라는 변수 안에 n%w 나머지 부분을 넣고
rest가 0이 아닌(배수가 아닌 경우)에 나머지 부분의 수만큼(rest를 곱해주니까) *가 출력되어진다.
'Python > Algorithm' 카테고리의 다른 글
[Python_Algorithm]직사각형 넓이로 변의 길이 구하기(자료구조와 함께 배우는 알고리즘 입문) (0) 2021.01.12 [Python_Algorithm]양수만 입력 받기(자료구조와 함께 배우는 알고리즘 입문) (0) 2021.01.10 [Python_Algorithm]반복 과정에서 조건 판단하기2(자료구조와 함께 배우는 알고리즘 입문) (2) 2021.01.05 [Python_Algorithm]반복하는 알고리즘(자료구조와 함께 배우는 알고리즘 입문) (0) 2020.12.30 [Python_Algorithm]알고리즘 기초(자료구조와 함께 배우는 알고리즘 입문) (0) 2020.12.30