코딩라이브러리/파이썬

파이썬 for while 조건문 (with 백준 2446, 2522)

유니네 라이브러리 2024. 5. 23. 17:35

for 문과 while 문을 활용한 반복문

조건문을 사용하여 반복 제어하기

백준 문제 풀이로 실전 적용 연습

 

📌 for 문 사용법

 

 기본적인 for 반복문

N = 5
for i in range(N):
    print(i, end=" ")  
# 출력: 0 1 2 3 4

 

 문자열 순회

M = '일이삼사오'
for i in M:
    print(i, end=" ")  
# 출력: 일 이 삼 사 오

 

 문자열의 인덱스를 이용한 순회

for i in range(len(M)):
    print(M[i], end=" ")  
# 출력: 일 이 삼 사 오

 

 잘못된 사용 예시

for i in M:  # 정상 작동
    print(i)  

for i in range(M):  # 오류 발생 (M이 문자열이므로 숫자로 해석 불가)
    print(i)

⚠️ range()에는 정수만 사용할 수 있음. 문자열을 넣으면 TypeError 발생

 

📌 while 문 사용법

 

기본적인 while 반복문

N = 5
i = 0
while i < N:
    print(i, end=" ")
    i += 1  
# 출력: 0 1 2 3 4

 

break를 활용한 반복문 종료

N = 5
i = 0
while True:
    if i >= N:
        break
    print(i, end=" ")
    i += 1  
# 출력: 0 1 2 3 4

 

문자열을 while 문으로 순회

M = '일이삼사오'
i = 0
while i < len(M):
    print(M[i], end=" ")
    i += 1  
# 출력: 일 이 삼 사 오

 

 while 문에서 break 사용

M = '일이삼사오'
i = 0
while True:
    if i >= len(M):
        break
    print(M[i], end=" ")
    i += 1  
# 출력: 일 이 삼 사 오

 

📌 for, while 조건문 활용 - 백준 문제 풀이

 

🔹 백준 2446번 - 별 찍기 9

 

[문제 링크] 🔗 백준 2446번

 

📌 문제 설명

N을 입력받아 역삼각형 + 정삼각형을 별(*)로 출력

 

📌 코드 구현 (for 문 사용)

N = int(input())  
tLine = 2 * N - 1  

for i in range(tLine):
    if i < N:
        space = i
        star = tLine - (i * 2)
    else:
        space = tLine - i - 1
        star = (i * 2) - tLine + 2

    print(" " * space + "*" * star)

 

 입출력 예시

입력
5

출력
*********
 *******
  *****
   ***
    *
   ***
  *****
 *******
*********

 

🔹 백준 2522번 - 별 찍기 12

 

[문제 링크] 🔗 백준 2522번

 

📌 문제 설명

N을 입력받아 좌우 대칭된 삼각형 모양의 별 출력

 

📌 코드 구현 (while 문 사용)

N = int(input())  
tLine = 2 * N - 1  

i = 1
while i <= tLine:
    if i <= N:
        print(" " * (N - i) + "*" * i)
    else:
        print(" " * (i - N) + "*" * (N - (i - N)))
    i += 1

 

 입출력 예시

입력
3

출력
  *
 **
***
 **
  *

 

 코드 구현 (while + break 사용)

N = int(input())  
tLine = 2 * N - 1  

i = 1
while True:
    if i > tLine:
        break
    if i <= N:
        print(" " * (N - i) + "*" * i)
    else:
        print(" " * (i - N) + "*" * (N - (i - N)))
    i += 1

 

📌 입출력 예시

입력
4

출력
   *
  **
 ***
****
 ***
  **
   *

 

📌 마무리 - 정리

 

for 문은 범위를 지정하여 반복 수행

while 문은 조건을 만족하는 동안 반복 수행

break를 사용하면 특정 조건에서 반복문을 강제로 종료 가능

별 찍기 문제를 통해 for, while 문을 활용하는 방법 연습