전체 코드
#include <iostream>
using namespace std;
int main()
{
#pragma region 별찍기
int input;
cout << "정수를 입력해주세요. : ";
cin >> input;
for (int i = 0; i < input; i++)
{
for (int j = 0; j < input; j++)
{
cout << "*";
}
cout << endl;
}
cout << "-----------------------" << endl;
for (int i = 1; i <= input; i++)
{
for (int j = 0; j < i; j++)
{
cout << "*";
}
cout << endl;
}
cout << "-----------------------" << endl;
for (int i = input; i > 0; i--)
{
for (int j = i; j > 0; j--)
{
cout << "*";
}
cout << endl;
}
cout << "-----------------------" << endl;
for (int i = 0; i < input; i++)
{
for (int j = 0; j < (input - i); j++)
{
cout << "*";
}
cout << endl;
}
cout << "-----------------------" << endl;
#pragma endregion
#pragma region 구구단
for (int i = 2; i <= 9; i++)
{
for (int j = 1; j <= 9; j++)
{
cout << i << " * " << j << " = " << (i * j) << endl;
}
cout << endl;
}
#pragma endregion
}
📌 1. 별 찍기 - 정사각형
- 전체 N줄
- 각 줄마다 N개의 별 출력
- 이중 for문 필수
메모리 흐름
| 변수 | 내용 |
|---|
i | 행 번호 (0~input-1) |
j | 열 번호 (0~input-1) |
input | 입력받은 크기 |
📌 2. 별 찍기 - 오름차순 삼각형
- 첫 줄 1개, 둘째 줄 2개... N번째 줄 N개
- 규칙: 한 줄의 별 개수 = 줄 번호 + 1
📌 3. 별 찍기 - 내림차순 역삼각형
방법1 - 직접 감소하는 루프
- N개부터 시작해, 1개까지 줄어듦
for (int i = input; i > 0; i--)
방법2 - 수학적 규칙 이용
- (input-i) 형태로 별 개수 계산
- 수학적 규칙이 눈에 보이므로 더 좋은 방법
📌 4. 구구단 출력
- 2단부터 9단까지 출력
- 각 단마다 1~9까지 곱 출력
- 이중 for문 필수
💡 핵심 포인트 정리
| 주제 | 설명 |
|---|
| 정사각형 | N x N 구조, 별 개수 일정 |
| 오름차순 삼각형 | 행이 내려갈수록 별 개수 증가 |
| 내림차순 삼각형 | 행이 내려갈수록 별 개수 감소 |
| 구구단 | 2~9단 출력, 이중 for문 구조 |
📦 입출력 설명 (cin, cout)
| 기능 | 설명 |
|---|
cin | 사용자 입력 받기 |
cout | 화면 출력하기 |
endl | 줄바꿈 (flush 포함) |
🛠️ 디스어셈블리 시각 (for 루프의 변환 예)
mov i, 0
cmp i, input
jge loop_end
...
inc i
jmp loop_start
🧵 이중 for문 흐름 정리
| 외부루프 | 내부루프 | 출력결과 |
|---|
| i=0 | j=0~input-1 | 별 input개 |
| i=1 | j=0~input-1 | 별 input개 |
| ... | ... | ... |
🚨 실수 방지 팁
| 실수 유형 | 해결책 |
|---|
| 무한루프 | 증가식 누락 주의 (count++ 등) |
| 출력 위치 혼동 | cout 위치 확인 |
| 줄바꿈 누락 | cout << endl; 빠짐 확인 |
| 변수 초기화 | 매 패턴마다 count 등 초기화 필요 |
🧙♂️ 퀴즈
| 문제 | 정답 |
|---|
| 삼각형 줄별 별 개수 공식은? | i+1 |
| 정사각형 별 개수 공식은? | input x input |
| 구구단에서 외부루프는? | 단 번호 |
| 구구단에서 내부루프는? | 곱하는 수 |
🛠️ 연습문제 정리표
| 문제 | 특징 |
|---|
| 정사각형 별 | N x N 이중 for문 |
| 오름차순 삼각형 | i+1개 출력 |
| 내림차순 역삼각형 | input-i개 출력 |
| 구구단 | 2~9단 출력 |
🔥 글을 마치며
- 별 찍기와 구구단은 반복문 기초 연습의 정석 문제입니다.
- 단순히 문제만 풀지 말고, 메모리 흐름, 루프 흐름, 디스어셈블리 변환 과정까지 연계해 보세요.
- 특히 이중 for문 구조는 확실히 익혀두면 좋습니다.
- 별 찍기 패턴은 응용하면 각종 그래픽 패턴도 구현 가능합니다.
- 구구단은 중첩 루프의 대표 예제로, 이후 2D 배열 처리에도 도움이 됩니다.
📥 필요하신 자료
✅ PDF 변환본
✅ 손으로 적기 좋은 요점 노트
✅ 연습 문제 추가 (응용 버전)
필요하신 자료 있으면 바로 만들어드립니다.
다음은 어떤 주제 공부할까요? 😊