Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

HanoiTowerTroublesAgain!/조현태

From ZeroWiki
Revision as of 00:16, 27 March 2026 by Maintenance script (talk | contribs) (Repair batch-0002 pages from live compare)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
== HanoiTowerTroublesAgain!/조현태 ==
  === 느낀점 및 설명 ===
   기다리는 동안 심심해서... 간단한거 하나..
   왜 아무도 않오는 거야앗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  === 소스 ===
#include <iostream>
#include <Windows.h>
#include <vector>
#include <cmath>

using namespace std;

bool IsCanPut(int baseBallNumber, int putBallNumber)
{
	double sqrtNumber = sqrt((double)(baseBallNumber + putBallNumber));
	if (sqrtNumber == (double)(int)sqrtNumber)
		return TRUE;
	return FALSE;
}

int GetMaxBallNumber(int stickNumber)
{
	int ballCount = 0;
	vector<int> lastBallNumbers;
	lastBallNumbers.resize(stickNumber);
	while(1)
	{
		bool isPut = FALSE;
		for (register int i = 0; i < stickNumber; ++i)
		{
			if (IsCanPut(lastBallNumbers[i], ballCount + 1) || 0 == lastBallNumbers[i])
			{
				isPut = TRUE;
				lastBallNumbers[i] = ballCount + 1;
				++ballCount;
				break;
			}
		}
		if (FALSE == isPut)
			return ballCount;
	}
	
}

void main()
{
	int testCaseNumber;
	cin >> testCaseNumber;
	for (int i = 0; i < testCaseNumber; ++i)
	{
		int stickNumber;
		cin >> stickNumber;
		cout << GetMaxBallNumber(stickNumber) << endl;
	}
}

HanoiTowerTroublesAgain!