문제 https://www.acmicpc.net/problem/13015
풀이
단순 구현 문제로, 가운데 줄을 제외한 부분이 반복됨을 이용해서 반복되는 부분을 함수로 구현했다.
규칙은 직관적으로(하드코딩ㅎ) 찾아냈고 숫자를 입력해보며 조건들을 추가했다.
각 줄마다 공백 - 별 - 공백 - 별의 구조이므로 각 부분을 for문을 돌면서 출력한다.
코드
#include <iostream>
using namespace std;
int n;
void printstar(int i)
{
for(int a=0;a<i;a++) cout<<" ";
for(int b=0; b<n; b++)
{
if(i==0 || (i!=0&&(b==0||b==n-1))) cout<<"*";
else cout<<" ";
}
for(int c=0; c<n+n-3-(i*2); c++) cout<<" ";
for(int b=0; b<n; b++)
{
if(i==0 || (i!=0&&(b==0||b==n-1))) cout<<"*";
else cout<<" ";
}
cout<<'\n';
}
int main()
{
cin>>n;
for(int i=0; i<n-1; i++)
{
printstar(i);
}
//중간줄
for(int i=0; i<n-1; i++) cout<<" ";
for(int i=0; i<n*2-1; i++)
{
if(i==0 ||i==n*2-2|| i==n-1) cout<<"*";
else cout<<" ";
}
cout<<'\n';
for(int i=n-2; i>=0; i--)
{
printstar(i);
}
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
백준 4673 - 셀프 넘버 (0) | 2022.03.29 |
---|---|
백준 1475 - 방 번호 (0) | 2022.03.23 |
백준 1929 - 소수 구하기(C++) (0) | 2022.03.21 |
백준 1927 - 최소 힙 (0) | 2022.03.20 |
백준 1065 - 한수 (0) | 2022.03.19 |