posted by REDFORCE 2017. 6. 13. 11:01

이번에 올릴 C++ 코드는 예전에 공부하면서 만들어 봤던 코드입니다.


결과물을 먼저 사진으로 보여드리자면 아래와 같이 나오네요.



처음 입력값으로 10을 받으면 10x10 행렬로 결과물을 만들어줍니다.


코드는 아래와 같습니다.


#include <iostream>
using namespace std;
int main() {
int arrSize;
cin >> arrSize;
int** arr = new int*[arrSize];
for (int i = 0; i < arrSize; i++) {
arr[i] = new int[arrSize];
}
int k = 0;
int spin, i, j;
for (spin = 0; spin < (arrSize*2)-1; spin++) {
for (int i = 0; i < arrSize; i++) {
j = spin - i;
if (j >= 0) {
if (j < arrSize) {
k = k + 1;
arr[i][j] = k;
}
}
}
}
for (int i = 0; i < arrSize; i++) {
for (int j = 0; j < arrSize; j++) {
if (arr[i][j] < 10) {
cout << " " << arr[i][j] << " ";
}
else {
cout << arr[i][j] << " ";
}
}
cout << endl;
}
for (int i = 0; i < arrSize; i++) {
delete(arr[i]);
}
delete(arr);
return 0;
}
view raw main.cpp hosted with ❤ by GitHub


1. 먼저 동적으로 행렬을 만들어주기 위해 new / delete를 사용합니다.

즉. 이중 포인터 형식으로 행렬 자리를 만들어줍니다.


2. 원리는 


for (spin = 0; spin < (arrSize*2)-1; spin++) {

for (int i = 0; i < arrSize; i++) {


j = spin - i;

if (j >= 0) {

if (j < arrSize) {

k = k + 1;

arr[i][j] = k;

}

}

}

}


이 부분을 잘 해독하셔서 이해하시길 바라겠습니다!!

절대 제가 설명하기 귀찮아서 그런건 아닙니다!


'Programming > C++' 카테고리의 다른 글

[C++] 달팽이 숫자 출력(Spin v.03)  (0) 2017.06.13
[C++] 지그재그 출력(Spin v.02)  (0) 2017.06.13
[12편-2] Modern C++ 정리: thread  (0) 2017.03.23
[12편-1] Modern C++ 정리: thread  (0) 2017.03.23
[11편] Modern C++ 정리: random  (2) 2017.03.23