이 예제는 백준, 프로그래머스 등등 코테 알고리즘 문제에 기본으로 나오는 단골 문제이므로,
기본을 손과 머리에 익히면 좋을 것 같아 정리합니다.
문제
다음과 같이 *을 출력하는 코드를 for 반복문을 사용해 작성하세요. 이중 for 반복문을 사용해서 코드를 작성하세요
실행결과
접근
이중 for문을 사용해서 별을 찍을 때
첫 번째의(바깥쪽) for문은 총 줄의 개수를 정하고,
두 번째의(안쪽) for문은 총 칸의 개수를 정한다.
즉, 바깥쪽 for 문 = 행 (바깥쪽 for문 반복이 3이면 총 3행)
안쪽 for 문 = 열 (안쪽 for문 반복이 6이면 총 6열)
위 문제의 경우, 총 행의 수는 5이므로 바깥쪽 for 문의 반복 횟수는 5이다.
열의 수는 1행 = >1, 2행 => 2, 3행 => 3의 변화하는 등차수열을 띄므로 반복 횟수가 변수라는 것을 알 수 있다.
위의 접근으로 코드를 작성하면 다음과 같다.
for i in range(0,5): # 이 줄은 행 반복을 담당합니다.
for j in range(1,i+1): # 이 줄은 열 반복을 담당합니다.
print('*', end='') # 별 출력
print()
결과
동일하게 잘 출력되었다.
깨알 지식
line 3의 print('*')로 작성하면 파이썬에서 print()를 실행하고 나서 자동으로 줄 바꿈이 추가되므로
*
*
*
*
*
*
...
와 같이 출력이 된다. 따라서 별이 연달아 찍히게 하기 위해 end=''를 추가해준다.
한 행의 출력이 끝나면 print()를 실행하게 하여 줄바꿈이 가능하게끔 한다.
이중 for문을 사용하지 않고도 충분히 별을 찍을 수 있다.
for i in range(1,6):
print('*' * i)
'✍🏻Language & FrameWork > 파이썬 문제풀이 100' 카테고리의 다른 글
63. 삼각형 별 찍기 II (0) | 2023.08.21 |
---|---|
62. 대각선 별 찍기 (0) | 2023.08.18 |
46.'도, 개, 걸, 윷, 모' 윷놀이(count) (0) | 2023.08.18 |
44. 올해는 윤년일까? (0) | 2023.08.18 |
30. 문자열 분리해 리스트 만들기(split) (0) | 2023.08.18 |