C언어/문제풀다 하나씩

기본 해쉬함수 사용하기 B-> 10

mcdn 2020. 6. 26. 14:08
반응형
#include <iostream>
#include <string>
using namespace std;

struct node {
	char code;
	int killcount;
	node* next;
};


int hasf(char code) {
	int intcode = code;
	return intcode % 3;
}

node* head[100];
node buf[1000];
int bufcnt;
node* myalloc(char code, int count, node*sub) {
	buf[bufcnt] = { code, count, sub };
	return &buf[bufcnt++];
}
void add(char code, int count) {
	int hasfans = hasf(code);
	head[hasfans] = myalloc(code, count, head[hasfans]);
}

int main() {
	add('B', 10);
	add('T', 15);
	add('S', 12);
	add('G', 15);
	add('O', 14);
	add('D', 13);
	add('Z', 16);

	char who;
	cin >> who;
	for (node* p = head[hasf(who)]; p != NULL;p = p->next) {
		if (p->code == who) {
			cout << p->killcount;
		}
	}

}

 

반응형