반복문이란?
"1부터 100까지 더하라" 같은 일을 손으로 100줄 적을 수는 없습니다. 반복문은
같은 동작을 조건이 만족하는 동안 자동으로 되풀이하게 해 줍니다.
1. for 문 — 횟수가 정해졌을 때
for (int i = 0; i < 5; i++) {
cout << i << '\n'; // 0 1 2 3 4
}
for는 세 부분으로 이뤄집니다.
- 초기화
int i = 0— 시작값 - 조건
i < 5— 참인 동안 반복 - 증감
i++— 한 바퀴 끝날 때마다 실행
for i in range(5): # 0, 1, 2, 3, 4
print(i)
파이썬은 range(시작, 끝, 간격)을 씁니다. 끝값은 포함하지 않습니다.
2. while 문 — 조건만 있을 때
횟수가 아니라 "어떤 조건일 동안" 반복할 땐 while이 자연스럽습니다.
int n; cin >> n;
while (n > 1) {
n /= 2; // n이 1이 될 때까지 반으로
cout << n << '\n';
}
while n > 1:
n //= 2
print(n)
3. 반복 변수 활용 — 합 구하기
long long sum = 0;
for (int i = 1; i <= n; i++)
sum += i; // 1 + 2 + ... + n
cout << sum << '\n';
반복문 밖에 누적용 변수를 두고, 안에서 갱신하는 게 가장 흔한 패턴입니다.
4. break와 continue
break— 반복을 즉시 끝낸다.continue— 이번 바퀴만 건너뛰고 다음 바퀴로.
for (int i = 1; i <= 100; i++) {
if (i % 7 == 0) continue; // 7의 배수는 건너뛴다
if (i > 50) break; // 50 넘으면 멈춘다
cout << i << ' ';
}
복잡도
N번 도는 반복문은 \(O(N)\)입니다. 반복문 안의 일이 무거우면 그만큼 곱해집니다.
Bronze에선 보통 \(O(N)\) 한두 번이면 충분합니다.
정리
- 횟수가 정해지면
for, 조건만 있으면while. - 파이썬
range의 끝값은 미포함. - 누적은 "밖에 변수, 안에서 갱신".
break는 즉시 종료,continue는 한 바퀴 건너뛰기.