출처 : 반크_세계유산 창덕궁
문제]
25 | 24 | 23 | 22 | 21 |
10 | 9 | 8 | 7 | 20 |
11 | 2 | 1 | 6 | 19 |
12 | 3 | 4 | 5 | 18 |
13 | 14 | 15 | 16 | 17 |
▶ 외부변수와 함수를 사용하시오.
참고풀이]
#include <iostream>
#include <vector>
#include <iomanip> //setw()
using namespace std;
int n=0;
vector<vector<int> > v;
void Quadrangle(int count, int row, int col)
{
vector<int> vc;
int r,c;//행열변수
int sw;//행열의 증감변수
int i,j;//반복변수
//vector에 초기값 0을 넣는다.
for(r=0;r<count;r++)
{
for(c=0;c<count;c++)
vc.push_back(0);
v.push_back(vc);
vc.clear();
}
sw=-1;
r=row;
c=col;
v[r][c]=++n;
for(i=1;i<=count;i++)
{
//열변환
for(j=1;j<=i;j++)
{
c+=sw;
n++;
v[r][c]=n;
}
if(n>count*count) break;
sw*=-1;
//행변환
for(j=1;j<=i;j++)
{
r+=sw;
n++;
v[r][c]=n;
}
}
}
int main()
{
int r,c;//행열변수
//vector에 값을 넣는다.
Quadrangle(5,2,2);
//결과 출력
for(r=0;r<5;r++)
{
for(c=0;c<v[r].size();c++)
cout << setw(3) << v[r][c];
cout << endl;
}
return 0;
}
참고풀이 결과]
대한민국의 아름다운 영토, 독도의 봄
'프로그램 > C++ 1000제' 카테고리의 다른 글
C++ 69제] vector 사용, 원하는 달팽이 수를 만들기 (0) | 2022.08.09 |
---|---|
C++ 68제] vector 사용, 1~5까지 사칙연산 사용하여 10만들기. (0) | 2022.07.29 |
C++ 66제] vector 사용, 문제와 같은 리본을 출력하시오. (0) | 2022.07.25 |
C++ 65제] vector 사용, 문제와 같은 영문자 리본을 출력하시오. (0) | 2022.07.13 |
C++ 64제] vector 사용, 문제와 같은 문자열을 출력하시오. (0) | 2022.07.13 |
댓글