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

CodeRace/20060105/아영보창: Difference between revisions

From ZeroWiki
imported>Unknown
No edit summary
 
(Repair batch-0001 pages from live compare)
 
Line 34: Line 34:
  for (int i = 0; i < container.size(); i++)
  for (int i = 0; i < container.size(); i++)
  {
  {
  if (container[i]->data == word->data)
  if (container[i]->data == word->data)
  {
  {
  isFind = true;
  isFind = true;
  container[i]->count++;
  container[i]->count++;
  break;
  break;
  }
  }
Line 55: Line 55:
  {
  {
  for (int i = 0; i < container.size(); i++)  
  for (int i = 0; i < container.size(); i++)  
  cout << container[i]->data << ' ' << container[i]->count << ' ' << container[i]->asciiSum << endl;
  cout << container[i]->data << ' ' << container[i]->count << ' ' << container[i]->asciiSum << endl;
  }
  }
   
   
Line 61: Line 61:
  void sortShow()
  void sortShow()
  {
  {
  sort(&container[0], &container[container.size()], Word());
  sort(&container[0], &container[container.size()], Word());
  show();
  show();
  }
  }
Line 73: Line 73:
  {
  {
  newStr = "";
  newStr = "";
  temp = container[i]->data;
  temp = container[i]->data;
  for(int j = 0; j < temp.size(); j++)
  for(int j = 0; j < temp.size(); j++)
  if (('A' <= temp[j] && temp[j] <= 'Z') || ('a' <= temp[j] && temp[j] <= 'z'))
  if (('A' <= temp[j] && temp[j] <= 'Z') || ('a' <= temp[j] && temp[j] <= 'z'))
  newStr += temp[j];
  newStr += temp[j];
  container[i]->data = newStr;
  container[i]->data = newStr;
  }
  }
   
   
Line 88: Line 88:
  for (int i = 0; i < container.size(); i++)
  for (int i = 0; i < container.size(); i++)
  {
  {
  temp = container[i]->data;
  temp = container[i]->data;
  for (int j = 0; j < temp.size(); j++)
  for (int j = 0; j < temp.size(); j++)
  container[i]->asciiSum += int(temp[j]);
  container[i]->asciiSum += int(temp[j]);
  }
  }
  }
  }
Line 99: Line 99:
  for (int i = 0; i < container.size(); i++)
  for (int i = 0; i < container.size(); i++)
  {
  {
  temp = container[i];
  temp = container[i];
  delete temp;
  delete temp;
  }
  }

Latest revision as of 23:56, 26 March 2026

CodeRace 아영 보창

#include <iostream>
using namespace std;
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>

struct Word
{
	string data;
	int count;
	int asciiSum;
	bool operator() (const Word* a, const Word* b)
	{
		if (a->data < b->data)
			return true;
		return false;
	}
};

fstream fin("Alice.txt");
vector<Word*> container;

void input()
{
	Word* word;
	bool isFind;

	word = new Word;
	while(fin >> word->data)
	{
		isFind = false;
		for (int i = 0; i < container.size(); i++)
		{
			if (container[i]->data == word->data)
			{
				isFind = true;
				container[i]->count++;
				break;
			}
		}
		if (isFind == false)
		{
			word->asciiSum = 0;
			word->count = 1;
			container.push_back(word);
		}
		word = new Word();
	}
}

// 2번 요구사항
void show() 
{
	for (int i = 0; i < container.size(); i++) 
		cout << container[i]->data << ' ' << container[i]->count << ' ' << container[i]->asciiSum << endl;
}

// 3번 요구사항
void sortShow()
{
	sort(&container[0], &container[container.size()], Word());
	show();
}

// 4번 요구사항
void cutString() 
{
	string temp;
	string newStr;
	for (int i = 0; i < container.size(); i++)
	{
		newStr = "";
		temp = container[i]->data;
		for(int j = 0; j < temp.size(); j++)
			if (('A' <= temp[j] && temp[j] <= 'Z') || ('a' <= temp[j] && temp[j] <= 'z'))
				newStr += temp[j];
		container[i]->data = newStr;
	}

}

// 5번 요구사항
void asciiCalc()
{
	string temp;
	for (int i = 0; i < container.size(); i++)
	{
		temp = container[i]->data;
		for (int j = 0; j < temp.size(); j++)
			container[i]->asciiSum += int(temp[j]);
	}
}

void deleteVector()
{
	Word *temp;
	for (int i = 0; i < container.size(); i++)
	{
		temp = container[i];
		delete temp;
	}
}

int main() 
{
	input();
	cutString();
	asciiCalc();
	sortShow();
	deleteVector();
	return 0;
}