이 튜토리얼에서는 C++를 사용하여 주어진 크기의 사각형 패턴을 콘솔에 출력하는 프로그램을 다룹니다.
사각형의 높이(height)와 너비(width)가 입력으로 주어지면, '@' 문자를 활용해 해당 크기만큼의 테두리 형태 사각형을 화면에 그려내는 것이 목표입니다. 내부는 공백으로 채워 속이 빈 사각형 모양이 되도록 구현합니다.
구현 아이디어
핵심 로직은 이중 반복문을 사용하는 것입니다. 바깥쪽 반복문은 행(row)을 순회하고, 안쪽 반복문은 열(column)을 순회합니다.
이때 다음 조건 중 하나라도 만족하는 위치에는 '@' 문자를 출력합니다.
- 첫 번째 행(i == 0) 또는 마지막 행(i == h-1)
- 첫 번째 열(j == 0) 또는 마지막 열(j == w-1)
그 외의 내부 위치에는 공백을 출력하여 빈 사각형 테두리를 완성합니다.
예제 코드
#include<iostream>
using namespace std;
void print_rec(int h, int w){
for (int i = 0; i < h; i++){
cout << "\n";
for (int j = 0; j < w; j++){
if (i == 0 || i == h-1 ||
j == 0 || j == w-1)
cout << "@";
else
cout << " ";
}
}
}
int main(){
int h = 5, w = 4;
print_rec(h, w);
return 0;
}실행 결과
높이 5, 너비 4로 함수를 호출하면 다음과 같은 결과가 출력됩니다.
@@@@ @ @ @ @ @ @ @@@@
코드 설명
print_rec 함수는 높이(h)와 너비(w)를 매개변수로 받습니다. 각 행을 시작하기 전에 줄바꿈 문자(\n)를 먼저 출력한 뒤, 해당 행의 각 열을 검사하며 테두리 여부를 판단합니다.
main 함수에서는 높이 5, 너비 4를 예시 값으로 설정하여 print_rec 함수를 호출합니다. 필요에 따라 h와 w 값을 변경하면 원하는 크기의 사각형을 자유롭게 출력할 수 있습니다.
이 방식은 시간 복잡도 O(h × w)로 직사각형 전체 영역을 한 번씩만 순회하므로 매우 효율적이며, '*'나 '#' 등 다른 문자로도 손쉽게 응용할 수 있습니다.