Description
[߄έۉଡ]
1. ֻҘ חࢿЕ C++ࢂ standard ষԯ(i.e. cin, cout)ࡶ ̛قࡳԻ ଢТЬ.
2. ॹࢺࡈ testcaseձ ˕ଞ ʎܹ߾ ٸԷଜࠆ Ի̐Ԓ ̛М ࢺܹɼ ٕࠆѼТЬ.
– (˕ case / দ case) * ॹࢺ ࣱ̛߾ ݤָѹ Ի̐Ԓ ̛М ࢺܹ
– TestcaseЕ ˓ʎѸए ݡ߉ТЬ.
3. main.cppࠪ test.cpp߾ Е ࠖݤҖձ ࡈଜࠆ חࢿҚࢂ ষԯ ࠖݤࠪ Ѱࢊଜʯ Οࠝ Еए ࢉଟ ܹ ݡТЬ.
[ʀࢷ]
1. ࢿষ ̛ଞࢇ Οएִ ߱ࡵ দࢺࢂ 20% ʃࢺ
2. ଜՔ(24ݤɾ) Нࡶ ҶցЬ ɼ 20% ʃࢺ
– 1ࢊ ࢇΰ : 20% ʃࢺ, 2ࢊ ࢇΰ : 40% ʃࢺ, 3ࢊ ࢇΰ : 60% ʃࢺ, 4ࢊ ࢇΰ : 80% ʃ ࢺ
– 4ࢊ ࢇۘ एࠉ : 0ࢺ
3. ৷ળࢊࢇ ࢽۘࢶࡳԻ Ѹए ߉ࡶ ˁࡉ Ի̐Ԓ ̛М ࢺܹ 0ࢺ
[ݢࢼ،]
ࡿ “રࢇ ࢼ” ૐࢄऌ ݿ ࢎВ лԸ ֍় ࠠԮ ࣯ ̛ݤԇТЬ. ш૩ח ࡵָࢿ#_ଝء(e.g., prob6_20230000)ࡳԻ փҚ߭ ࣯ݤݫࠝ. Ӗଞ חࢿ ૩ш ߇߾ ɽ חࢿ߾ ଥкଜЕ
Report(prob6_20230000_report.pdf)Ѧ ʋࢇ ϋ߭۰ zipળࢊԻ փҘ ୯ ࢿষଥ ࣯ ̛ݤԇТЬ.
ࢇ Ҷ, ঌٕળࢊ߾ ૦ଡѹ .h, .cpp રࢇրࡳ ࢄࡅଙࠃ ࣯ଥষࢿ ̛ݤԇТЬ. MultiHeadList.hࠪ
Syllogism.cppփࡶ ۽ଜࠆ ଜষࢿִݤ ѼТЬ. ࢿষࡵ Җ؆ݤ PLMSձ ଥ ࣯ଥষࢿ ̛ݤԇ
ТЬ. ࢇ֩ࢊ ࢿষࡵ ࢉࢽѸए ݡ߉ТЬ. 4ࢊ ࢇۘ एࠉ ࢿষଟ ˁࡉ 0ࢇࢺװԻ 4ࢊ(6ࡖ 11ࢊ 23 ٗ59 ݤ 59ট)ࢇ ए ࢇ୯Е PLMSձ ଥ ଜষࢿݡ߷ ܹ ݨТЬ. ݥߦࡶ एੁए ݤ ࡶ߉ ʃࢺ ࢇ ࣑ࢢଢТЬ.
ࢿষળࢊ ࠖݤ) prob6_20230000.zip (probf6_20230000 [૩ш], prob6_20230000_report.pdf)
[ॶࢷ̘࣮]
1. ଋԸ̍ԏ ̘Й(۳ˀ ˮୀ) – 85%
– Ի̐Ԓࢇ ࡁ˱ یତࡶ ֻѿ ଜ࣐փࠠ ۰ִԻ ݨଭѸЕɼ?
– ࡁ˱ یତࡶ փ࣐ଜ̛ ࡢଞ ߊ ܹضˈչऋ ۶˃ɼ ࢚ Ѹ߹Еɼ?
– ɽ ݤࢿ ۰߾ࢿחଞ ٕۿ ࣏ʢࢂ ࢂࡪیତࡶ ֻѿ փ࣐ଜࠑЕɼ?
– ԯ˕ ষԯࢇ ࣯߭ऑ ݥ߾ ֍ʯ Ի̐Ԓࢇ ࢚ ѰଜЕɼ?
– MultiHead Ԏݛ 65ࢺ
– Syllogism Ԏݛ 20ࢺ
2. ଋԸ̍ԏ Ѥɹۺ – 5%
– Ի̐Ԓࢇ ࢋ̛ ݒˈ ࢇଥଜ̛ ݒʯ ۽Ѹ߹Еɼ?
– ה ࢇָ ܹض߸ࡶ ࢂଜЕए ળ߆ଜ̛ ݍࡋɼ?
– Ի̐Ԓࢂ ݛܕ Җձ ࢇଥଜ̛ ݒѦԼ ࣯۱ࡶ ࢚ ٠ࠑЕɼ?
%10 – ݢߣ ,έࡅ ۺˮ ۭ˅ؼ 3.
– ؿˈ۰Е ࢶࢸଞ ΰࡈࡳԻ ࢇଥଜ̛ ؿ ˈݒ̛ ࣚʯ ࢚ ۽Ѹ߹Еɼ?
– ݥߦ ࢂ۰ˈؿࡶ ࢚ ҬԉЕɼ?
– ɽ ݤࢿ ۰߾ࢿחଞ ओחࢇ Ьִ, ̐߾ оଞ зٗ ࢇضଞɼ?
[ࡿ࣬ۉଡ]
Ьհ یԆࢂ Ի̐ԒࢇΟ ࢉਫ਼ϒ߾ Е Ի̐Ԓࡶ Яܻ یـ(copy)ଜʠΟ ܹࢽଥ۰ ࢿষଜ ٕ ִࢽଭࡢԻ ɾ࣯ѼТЬ. ٕࢽଭࡢ ݤ ʺ؈ ‘F’ ଝࢺࡶ ؇ࡶ ܹ ࡳֲ, ଝ˕߾۰ ࢽଞ ࣱ̛߾ ҬԂ ɼࢶࢉ ݡ ܹ ࡶ ࢇ࢈ࢇٙТЬ.
הࢼ 1. MultiHeadList (؎ࢷ 65ࢷ)
Headɼ ࠆԜ ʎ Е Doubly Linked Listձ templateࡶ ଥ ˱ୃଜˈ ଞЬ.
[DoublyLinkedList]
ϠҖ(όֻ̒҆)Е ࢇࢷ ϠҖձ ɼչੁЕ Prev(Node *)ࠪ ࢽؿձ жˈ Е Data(T), Ьࡸ ϠҖձ ɼչੁЕ Next(Node *)Ի ˱۽ѹЬ. ࢿࢊ ঈࡸࢂ ϠҖձ HeadԂˈ ٕծֲ, ࢿࢊ ցएւࢂ ϠҖЕ
TailࢇԂ ٙջЬ. Headࢂ Prevࠪ Tailࢂ NextЕ nullptrࡶ ɼչЬ.
[MultiHeadList]
MultiHeadListЕ Headɼ ࠆԜ ʎࢉ doubly linked listࢇЬ.
Headࢂ ࣯ܕЕ headList(std::vector<Node<T>*>)߾۰ ˗չѹЬ.
[سܶ ଞܶ]
MultiHeadListЕ Ьࡸ˕ ʋࡵ ضܹձ ɼऑЬ.
૯ 1 MultiHeadList classࡿ سܶ
ָ۶ ܹض
headList std::vector<<Node<T>*> Headࢂ ࣯ܕɼ жʷЕ vector
MultiHeadListЕ Ьࡸ˕ ʋࡵ ଡܹձ ɼऑЬ. ࡁଗݤ ̛ ଡܹձ ۽ଜЕ ʨࡵ ଜМɼֲ ɼࢶ ࡳԻ ଡܹձ ˱ୃଜЕ ʨ ࠇݤ ɼМଜЬ.
૯ 2 MultiHeadList classࡿ ଞܶ
ଡܹ ָ۶
void push_back(const T& data, int headIdx=-1) 1. headIdxءध List ֒ Ζ߾ data ɼ
2. headIdxɼ ࡸܹࢇʠΟ headList߾ ࢵࢠѸ߭ Е head
ࢂ їࢉݛձ ট˕ଜЕ ʅࢇ Қ߭ࠠ ҶЕ ۚԻࡋ head ۢ
۽ଜࠆ ɼ
void push_front(const T& data, int headIdx=-1) 1. headIdxءध List ֒ Ζ߾ data ɼ
2. headIdxɼ ࡸܹࢇʠΟ headList߾ ࢵࢠѸ߭ Е head
ࢂ їࢉݛձ ট˕ଜЕ ʅࢇ Қ߭ࠠ ҶЕ ۚԻࡋ head ۢ
۽ଜࠆ ɼ
void insert(Iterator pos, const T& data) posɼ ɼչੁЕ ˒ ࢇࢷ߾ data ە
void pop_back(int headIdx) headIdxءध List ֒ Ζ data ۍࢿ
void pop_front(int headIdx) headIdxءध List ߔ ֒ data ۍࢿ
void merge(int frontHeadIdx, int backHeadIdx) frontHeadIdxءध List ҋ߾ backHeadIdxءध List ٠ࢇ̛
bool erase(const T& data, int targetHeadIdx) 1. targetHeadIdxءध List߾ dataɼ Ьۍ ִࢿ 2. headٕਫ਼ ݤଜࠆ ࢿࢊ ঈࡸ ؈ʺѹ dataփ ۍࢿ
bool erase(Iterator pos) posɼ ɼչੁЕ ˒ data ۍࢿ
int headSize() headListࢂ ̛ձ ؆
Iterator begin(int headIdx) headIdxءध Listࢂ begin()
Iterator end() NullptrԻ ˱ୃ
ReverseIterator rbegin(int headIdx) 1. headIdxءध Listࢂ rbegin()
2. headIdxءध Listࢂ tailٕਫ਼ ࠇܻࡳԻ ࡏऐࢉЬ
ReverseIterator rend() NullptrԻ ˱ୃ
[Iterator]
MultiheadList ΰٕ߾۰ ࢽࢂѸЕ classԻ Iteratorࠪ ReverseIteratorձ ֻѿ ଥୃ˱ߞଞЬ. Iterator
Е ɽ headطԻ ˱ୃࢇ Ѻ ܹ ѦԼ ଞЬ. 2߾۰ ك ܹ Ҟࢇ multiheadlistࢂ begin(i)ࡵ iء ध listࢂ headձ ɼչੁЕ iteratorɼ ѹЬ.
[سܶ ଞܶ]
Iteratorࠪ ReverseIteratorЕ Ьࡸ˕ ʋࡵ ضܹձ ɼऑЬ.
૯ 3 Iteratorࠧ ReverseIterator classࡿ سܶ
ܹض ָ۶
curr Node<T>* List߾۰ ୃࢢ ϠҖձ ɼչੁЕ ૦ࢉਫ਼
Iteratorࠪ ReverseIteratorЕ Ьࡸ˕ ʋࡵ ଡܹձ ɼऑЬ. ૯ 4 Iteratorࠧ ReverseIterator classࡿ ଞܶ
ଡܹ ۶ָ
Iterator/ReverseIterator (Node<T>* node) ۽ۢ
ࢷࡢ/୯ࡢ ࠉۏ ˱ୃ operator++
(Iteratorࠪ ReverseIteratorࢂ Ѱ ؆о)
ࢷࡢ/୯ࡢ ࠉۏ ˱ୃ operator–
(Iteratorࠪ ReverseIteratorࢂ Ѱ ؆о)
operator+(int n) nءփਾ ++ ࠉۏ
operator-(int n) nءփਾ — ࠉۏ
operator!= !=
operator== ==
operator*() currࢂ dataձ ষԯ
[ݡࠓ Ԭࢌ]
MultiHeadList<int> mhList ࡶ ۴߯ଞ ࢇ୯, Ьࡸ˕ ʋࡵ ʼ˕ձ ࢉଟ ܹ Ь.
הࢼ 2. n Ь ϟأ (؎ࢷ 20 ࢷ) חࢿ1߾۰ ˱ୃଞ MultiHeadListձ ࢇࡈଜࠆ nϢЯئࡶ ଥୃ˱ؿˈ ଞЬ.
“A ࢇִ BࢇЬ” ԂЕ ϢչЕ std::pair<std::string,std::string>߾ ࢵࢠѹЬ. Ϣչɼ ࠉʼѸए ߉Е ˁ ࡉ߾Е ۚԻࡋ headձ փҚ߭۰ headList߾ ɼଞЬ. ֻҘ Ϣչձ ীଢଞ ҋ, ओחࡶ ы࣌ࡶ Ҷ ফࣗ ʼԽࡶ ΰЕ ʨࢇ ּ ࢂࢿחࢇЬ. Я, ܻϢչЕ ۢ؈ଜए ߉ЕЬˈ ɼࢽଞЬ. Ьࡸࢂ ࠖ ݤձ ء .ؿۑ ܻ۰оԻ nϢЯئࡶ MultiHeadList߾ ࢵࢠବࡶ Ҷ ʼ˕Е Ьࡸ˕ ʋЬ.
2 ء̧ए Ϣչձ ࢵࢠଞ ୯, “B ࢇִ?”ࢇԂˈ ओחବࡶ Ҷ ࢽзࡵ “C ࢇЬ” ࢇЬ.
5 ء̧ए Ϣչձ ࢵࢠଞ ୯, “B ࢇִ?”ࢇԂˈ ओחବࡶ Ҷ ࢽзࡵ “F ࢇЬ” ࢇЬ.
[سܶ ଞܶ]
Syllogism classЕ Ьࡸ˕ ʋࡵ ضܹձ ɼऑЬ.
૯ 5 Syllogism classࡿ سܶ
ָ۶ ܹض
syl MultiHeadList<std::pair<std::string,std::string>> Ϣչɼ ࢵࢠѸЕ MultiHeadList Syllogism classЕ Ьࡸ˕ ʋࡵ ଡܹձ ɼऑЬ. ̛Мࡶ ࡢଥ ଗࡁଞ Ьհ ଡܹ یࡈ ɼМଜЬ.
૯ 6 Syllogism classࡿ ଞܶ
ଡܹ ۶ָ
Ϣئࡶ ϋˈ ଥк Ϣئࢇ ࢚ ࠉʼѺ ܹ ѦԼ ˱۽ଞЬ. void put(const std::pair<std::string,
Pairࢂ ءध ʅ(first)ɼ “~ࢇִ”߾ ଥкଜ std::string>& argument)
ֲ, pairࢂ ѿءध ʅ(second)ɼ “~ࢇЬ.”߾ ଥкଞЬ. ओח qձ ы࣌ࡶ Ҷ (“qࢇִ”) nЯ Ϣئࡶ void qna(const std::string& q)
ʠ ୯, ফࣗ ʼԽࡶ озଞЬ.
MultiHeadListࢂ ࢷࢶࢉ ۘଢ଼ࡶ ୃଜ void print()
Е ଡܹԻ ࢇ ˱ୃࢇ Ѹ߭ Ь.
[ݡࠓ Ԭࢌ]
ԯ ষԯ
Syllogism syl;
syl.put(make_pair(“A”, “B”));
syl.print();
syl.put(make_pair(“B”, “C”));
syl.print();
syl.put(make_pair(“E”, “F”));
syl.print();
syl.put(make_pair(“D”, “E”));
syl.print(); syl.qna(“B”);
syl.put(make_pair(“C”, “D”));
syl.print(); syl.qna(“B”); =============
0 : A->B
=============
0 : A->B->C
=============
0 : A->B->C
1 : E->F
=============
0 : A->B->C
1 : D->E->F
If B, then C
=============
0 : A->B->C->D->E->F
If B, then F




Reviews
There are no reviews yet.