코딩/문제

코딩 시험 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);
}

배열크기 5

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

이러면 그냥 함수랑 똑같지만 ...