๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 10 Solution

Problem: ์ฐธ์กฐ๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž. ๋‹ค์Œ ์ฝ”๋“œ์™€ Execution Result๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ append() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋ผ. append()๋Š” Buffer ๊ฐ์ฒด์— ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•˜๊ณ  Buffer ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class Buffer{ string text; public: Buffer(string text) { this->text = text; } void add(string next) { text += next; } // text์— next ๋ฌธ์ž์—ด ๋ง๋ถ™์ด๊ธฐ void print() { cout << text << endl; } }; int main() { Buffer buf("Hello"); Buffer& temp = append(buf, "Guys"); // buf์˜ ๋ฌธ์ž์—ด์— "Guys" ๋ง๋ถ™์ž„ temp.print(); // "HelloGuys" ์ถœ๋ ฅ buf.print(); // "HelloGuys" ์ถœ๋ ฅ } Execution Result: ...

March 5, 2020 ยท 1 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 9 Solution

Problem: ํด๋ž˜์Šค Accumulator๋Š” add() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ณ„์† ๊ฐ’์„ ๋ˆ„์ ํ•˜๋Š” ํด๋ž˜์Šค๋กœ์„œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธ๋œ๋‹ค. Accumulator ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋ผ. 1 2 3 4 5 6 7 class Accumulator{ int value; public: Accumulator(int value); // ๋งค๊ฐœ ๋ณ€์ˆ˜ value๋กœ ๋ฉค๋ฒ„ value๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. Accumulator& add(int n); // value์— n์„ ๋”ํ•ด ๊ฐ’์„ ๋ˆ„์ ํ•œ๋‹ค. int get(); // ๋ˆ„์ ๋œ ๊ฐ’ value๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. }; Accumulator๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด main() ํ•จ์ˆ˜์— ์˜ํ•ด ํ™œ์šฉ๋œ๋‹ค. 1 2 3 4 5 int main() { Accumulator acc(10); acc.add(5).add(6).add(7); // acc์˜ value ๋ฉค๋ฒ„๊ฐ€ 28์ด ๋œ๋‹ค. cout << acc.get(); // 28 ์ถœ๋ ฅ } Execution Result: ...

March 5, 2020 ยท 2 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 8 Solution

Problem: ๋ฌธ์ œ 7๋ฒˆ์˜ MyIntStack์„ ์ˆ˜์ •ํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธํ•˜์˜€๋‹ค. ์Šคํƒ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ •์ˆ˜์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋Š” ์ƒ์„ฑ์ž์—์„œ ์ฃผ์–ด์ง€๊ณ  size ๋ฉค๋ฒ„์— ์œ ์ง€ํ•œ๋‹ค. MyIntStack ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜๋ผ. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class MyIntStack{ int *p; // ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ๋กœ ์‚ฌ์šฉํ•  ํฌ์ธํ„ฐ int size; // ์Šคํƒ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ int tos; // ์Šคํƒ์˜ ํƒ‘์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ์ธ๋ฑ์Šค public: MyIntStack(); MyIntStack(int size); MyIntStack(const MyIntStack& s); // ๋ณต์‚ฌ ์ƒ์„ฑ์ž ~MyIntStack(); bool push(int n); // ์ •์ˆ˜ n์„ ์Šคํƒ์— ํ‘ธ์‹œํ•œ๋‹ค. // ์Šคํƒ์ด ๊ฝ‰ ์ฐจ ์žˆ์œผ๋ฉด false๋ฅผ, ์•„๋‹ˆ๋ฉด true ๋ฆฌํ„ด bool pop(int &n); // ์Šคํƒ์˜ ํƒ‘์— ์žˆ๋Š” ๊ฐ’์„ n์— ํŒํ•œ๋‹ค. // ๋งŒ์ผ ์Šคํƒ์ด ๋น„์–ด ์žˆ์œผ๋ฉด false๋ฅผ, ์•„๋‹ˆ๋ฉด true ๋ฆฌํ„ด }; MyIntStack ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•˜๋Š” ์ฝ”๋“œ์™€ Execution Result๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ...

March 5, 2020 ยท 3 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 6 Solution

Problem: find() ํ•จ์ˆ˜์˜ ์›ํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๋ฌธ์ž์—ด a์—์„œ ๋ฌธ์ž c๋ฅผ ์ฐพ์•„, ๋ฌธ์ž c๊ฐ€ ์žˆ๋Š” ๊ณต๊ฐ„์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค. ๋งŒ์ผ ๋ฌธ์ž c๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๋ฉด success ์ฐธ์กฐ ๋งค๊ฐœ ๋ณ€์ˆ˜์— false๋ฅผ ์„ค์ •ํ•œ๋‹ค. ๋ฌผ๋ก  ์ฐพ๊ฒŒ ๋˜๋ฉด success์— true๋ฅผ ์„ค์ •ํ•œ๋‹ค. 1 char& find(char a[], char c, bool& success); ๋‹ค์Œ main()์ด ์ž˜ ์‹คํ–‰๋˜๋„๋ก find()๋ฅผ ์ž‘์„ฑํ•˜๋ผ. 1 2 3 4 5 6 7 8 9 10 11 int main() { char s[] = "Mike"; bool b = false; char& loc = find(s, 'M', b); if(b == false) { cout << "M์„ ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์—†๋‹ค" << endl; return 0; } loc = 'm'; // 'M' ์œ„์น˜์— 'm' ๊ธฐ๋ก cout << s << endl; // "mike"๊ฐ€ ์ถœ๋ ฅ๋จ } Execution Result: ...

March 5, 2020 ยท 2 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 5 Solution

Problem: ๋‹ค์Œ Circle ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค. 1 2 3 4 5 6 7 8 class Circle{ int radius; public: Circle(int r) {radius =r;} int getRadius() {return radius;} void setRadius(int r) {radius = r;} void show() {cout << "๋ฐ˜์ง€๋ฆ„์ด " << radius << "์ธ ์›" << endl;} }; Circle ๊ฐ์ฒด b๋ฅผ a์— ๋”ํ•˜์—ฌ a๋ฅผ ํ‚ค์šฐ๊ณ ์ž ๋‹ค์Œ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค. 1 2 3 4 void increaseBy(Circle a, Circle b) { int r = a.getRadius() + b.getRadius(); a.setRadius(r); } ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด increaseBy() ํ•จ์ˆ˜๋Š” ๋ชฉ์ ๋Œ€๋กœ ์‹คํ–‰๋˜๋Š”๊ฐ€? ...

March 5, 2020 ยท 2 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 4 Solution

Problem: ์•„๋ž˜์™€ ๊ฐ™์ด ์›ํ˜•์ด ์ฃผ์–ด์ง„ bigger()๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ 2๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ํฐ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๋Š” main()์„ ์ž‘์„ฑํ•˜๋ผ. bigger()๋Š” ์ธ์ž๋กœ ์ฃผ์–ด์ง„ a, b๊ฐ€ ๊ฐ™์œผ๋ฉด true, ์•„๋‹ˆ๋ฉด false๋ฅผ ๋ฆฌํ„ดํ•˜๊ณ  ํฐ ์ˆ˜๋Š” big์— ์ „๋‹ฌํ•œ๋‹ค. 1 bool bigger(int a, int b, int& big); Execution Result: Objective & Hints: ์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ ์—ฐ์Šต Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include using namespace std; bool bigger(int a, int b, int& big){ if(a==b) return true; else { if(a>b) big = a; else big = b; return false; } } int main() { int a, b, big; cout << "๋‘๊ฐœ์˜ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”>>"; cin >> a >> b; if(!bigger(a, b, big)) cout << "ํฐ ์ˆ˜๋Š” : " << big; else cout << "๋‘ ์ •์ˆ˜๊ฐ€ ๊ฐ™์Šต๋‹ˆ๋‹ค."; } Explanation: ...

March 5, 2020 ยท 1 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 3 Solution

Problem: ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•˜๋„๋ก combine() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ผ. 1 2 3 4 5 6 int main() { string text1("I love you"), text2("very much"); string text3; // ๋น„์–ด์žˆ๋Š” ๋ฌธ์ž์—ด combine(text1, text2, text3); // text1๊ณผ " ", ๊ทธ๋ฆฌ๊ณ  text2๋ฅผ ๋ง๋ถ™์—ฌ text3 ๋งŒ๋“ค๊ธฐ cout << text3; // "I love you very much" ์ถœ๋ ฅ } Execution Result: Objective & Hints: string ํด๋ž˜์Šค์™€ ์ฐธ์กฐ ์‚ฌ์šฉ ์—ฐ์Šต Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include #include using namespace std; void combine(string t1, string t2, string &t3){ t3 = t1 + " " + t2; } int main() { string text1("I love you"), text2("very much"); string text3; // ๋น„์–ด์žˆ๋Š” ๋ฌธ์ž์—ด combine(text1, text2, text3); // text1๊ณผ " ", ๊ทธ๋ฆฌ๊ณ  text2๋ฅผ ๋ง๋ถ™์—ฌ text3 ๋งŒ๋“ค๊ธฐ cout << text3; // "I love you very much" ์ถœ๋ ฅ } Explanation: ...

March 5, 2020 ยท 1 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 2 Solution

Problem: ๋‹ค์Œ main() ํ•จ์ˆ˜์™€ Execution Result๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ half() ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ผ. 1 2 3 4 5 int main() { double n = 20; half(n); // n์˜ ๋ฐ˜๊ฐ’์„ ๊ตฌํ•ด n์„ ๋ฐ”๊พผ๋‹ค. cout << n; // 10์ด ์ถœ๋ ฅ๋œ๋‹ค. } Execution Result: Objective & Hints: ์ฐธ์กฐ ์—ฐ์Šต Code: 1 2 3 4 5 6 7 8 9 10 11 12 #include using namespace std; half(double &num){ // ์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ num /= 2; // num์œผ๋กœ ๋„˜์–ด์˜จ ๋ณธ๋ž˜์˜ ๊ฐ’์ด ๋ฐ”๋€œ } int main() { double n = 20; half(n); // n์˜ ๋ฐ˜๊ฐ’์„ ๊ตฌํ•ด n์„ ๋ฐ”๊พผ๋‹ค. cout << n; // 10์ด ์ถœ๋ ฅ๋œ๋‹ค. } Explanation: ...

March 5, 2020 ยท 1 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.5 Exercise 1 Solution

Problem: ๋‘ ๊ฐœ์˜ Circle ๊ฐ์ฒด๋ฅผ ๊ตํ™˜ํ•˜๋Š” swap() ํ•จ์ˆ˜๋ฅผ '์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ'์ด ๋˜๋„๋ก ์ž‘์„ฑํ•˜๊ณ  ํ˜ธ์ถœํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ. Objective & Hints: ์ฐธ์กฐ์— ์˜ํ•œ ํ˜ธ์ถœ ์—ฐ์Šต Execution Result: Code: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include using namespace std; class Circle { int num; public: Circle(); Circle(int num) {this->num = num;} void setNum(int num) {this->num = num;} int getNum() {return num;} }; void swap(Circle &a, Circle &b) { int swap; swap = a.getNum(); a.setNum(b.getNum()); b.setNum(swap); } int main() { Circle a(5), b(10); cout << a.getNum() << " " << b.getNum() << endl; swap(a,b); cout << a.getNum() << " " << b.getNum(); } Explanation: ...

March 5, 2020 ยท 1 min ยท Sobamemil
๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.4 Exercise 14 Solution

Problem: ๊ฒœ๋ธ”๋ง ๊ฒŒ์ž„์„ ๋งŒ๋“ค์–ด๋ณด์ž. ๋‘ ์‚ฌ๋žŒ์ด ๊ฒŒ์ž„์„ ์ง„ํ–‰ํ•˜๋ฉฐ, ์„ ์ˆ˜์˜ ์ด๋ฆ„์„ ์ดˆ๊ธฐ์— ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค. ์„ ์ˆ˜๊ฐ€ ๋ฒˆ๊ฐˆ์•„ ์ž์‹ ์˜ ์ฐจ๋ก€์—์„œ ํ‚ค๋ฅผ ์น˜๋ฉด ๋žœ๋คํ•œ 3๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๋ชจ๋‘ ๋™์ผํ•œ ์ˆ˜๊ฐ€ ๋‚˜์˜ค๋ฉด ๊ฒŒ์ž„์—์„œ ์ด๊ธฐ๊ฒŒ ๋œ๋‹ค. ์ˆซ์ž์˜ ๋ฒ”์œ„๊ฐ€ ๋„ˆ๋ฌด ํฌ๋ฉด 3๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ผ์น˜ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋‚ฎ์•„ ์ˆซ์ž์˜ ๋ฒ”์œ„๋ฅผ 0~2๋กœ ์ œํ•œํ•œ๋‹ค. ๋žœ๋ค ์ •์ˆ˜ ์ƒ์„ฑ์€ ๋ฌธ์ œ 5๋ฒˆ์˜ ํžŒํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜๋ผ. ์„ ์ˆ˜๋Š” Player ํด๋ž˜์Šค๋กœ ์ž‘์„ฑํ•˜๊ณ , 2๋ช…์˜ ์„ ์ˆ˜๋Š” ๋ฐฐ์—ด๋กœ ๊ตฌ์„ฑํ•˜๋ผ. ๊ทธ๋ฆฌ๊ณ  ๊ฒŒ์ž„์€ GamblingGame ํด๋ž˜์Šค๋กœ ์ž‘์„ฑํ•˜๋ผ. Objective & Hints: ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ฐ์Šต ...

March 4, 2020 ยท 2 min ยท Sobamemil