코딩/문제
코딩 시험 8번 class화
Hun die
2022. 6. 20. 11:51
https://fite9.tistory.com/20?category=1027019
코딩 시험
1. 포인터와 레퍼런스를 활용해 함수 외부에서 선언된 두 정수형 변수의 값을 서로 바꾸는 Swap 함수를 각각 구현하시오 void Swap(int* a, int* b)//포인터 { int c = *a; *a = *b; *b = c; } void Swap(int& a,..
fite9.tistory.com
8번 문제 달팽이 만들기
#include <iostream>
#include <string>
#include "Snail.h"
using namespace std;
class Snail
{
public:
static void ArrayMake(int in)
{
N = in;
int count = 1;
int UP = 0; //올라가는 숫자
int DOWN = N - 1;// 내려가는 숫자
test = new int[in*in];
while (count <= N * N)// N * N값(배열 최대 값)이 출력되면 종료
{
for (int i = UP; i < N - UP; i++)// 위쪽
{
test[UP * N + i] = count;
count++;
}
for (int i = UP + 1; i < N - UP; i++)// 오른쪽
{
test[i * N + DOWN] = count;
count++;
}
for (int i = DOWN - 1; i > UP - 1; i--)// 아래쪽
{
test[DOWN * N + i] = count;
count++;
}
for (int i = DOWN - 2; i > UP - 1; i--)// 왼쪽
{
test[(i + 1) * N + UP] = count;
count++;
}
UP++;
DOWN--;
}
//출력
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
cout << test[i * N + j] << "\t";
}
cout << endl << endl;
}
}
~Snail()
{
delete[] test;
}
private:
static int N;
static int *test;
};
int Snail::N = 0;
int* Snail::test = { 0 };
int main(void)
{
int N;
cout << "배열의 크기를 입력하세요 : ";
cin >> N;
Snail::ArrayMake(N);
}

class화 시키지 않고 코딩한 것을 나누려고 했으나 나눌 정도로 길지 않아서 그냥 int값을 인자로 받아서 돌아가는 방식으로 만들었다.
이러면 그냥 함수랑 똑같지만 ...