๐Ÿ’ป Dev & CSC++ Programming

C++ Programming Ch.10 Exercise 6 Solution

Problem: ๋‹ค์Œ ํ•จ์ˆ˜๋Š” ๋งค๊ฐœ ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง„ int ๋ฐฐ์—ด src์—์„œ ๋ฐฐ์—ด minus์— ๋“ค์–ด์žˆ๋Š” ๊ฐ™์€ ์ •์ˆ˜๋ฅผ ๋ชจ๋‘ ์‚ญ์ œํ•œ ์ƒˆ๋กœ์šด int ๋ฐฐ์—ด์„ ๋™์ ์œผ๋กœ ํ• ๋‹น๋ฐ›์•„ ๋ฆฌํ„ดํ•œ๋‹ค. retSize๋Š” remove() ํ•จ์ˆ˜์˜ Execution Result๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์ „๋‹ฌ๋ฐ›๋Š”๋‹ค. 1 int * remove(int src[], int sizeSrc, int minus[], int sizeMinus, int& resSize); ํ…œํ”Œ๋ฆฟ์„ ์ด์šฉํ•˜์—ฌ remove๋ฅผ ์ผ๋ฐ˜ํ™”ํ•˜๋ผ. 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 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 #include using namespace std; template T* remove(T src[], int sizeSrc, T minus[], int sizeMinus, int & retsize){ int j; T* tmpArray = new T[sizeSrc]; for(int i=0; i<sizeSrc; i++){ for(j=0; j<sizeMinus; j++){ if(src[i] == minus[j]){ // src์˜ ์›์†Œ์™€ minus์˜ ์›์†Œ๊ฐ€ ๊ฐ™์œผ๋ฉด j์˜ ๊ฐ’์„ ํ•˜๋‚˜ ๋‚ด๋ฆฐ ํ›„ break --j; break; } } if(j==sizeMinus){ // j==sizeMinus ๋ผ๋Š”๊ฑด src์™€ minus์— ๊ฐ™์€ ์›์†Œ๊ฐ€ ์—†์–ด ์ค‘๊ฐ„์— break ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ tmpArray[retsize] = src[i]; // src[i]๋ฅผ ๋™์  ํ• ๋‹น ํ•˜์—ฌ ์ƒ์„ฑํ•œ tmpArray์— ์‚ฝ์ž… retsize++; // return ํ•  size์˜ ๊ฐ’์„ ํ•˜๋‚˜ ์˜ฌ๋ ค์คŒ } } return tmpArray; } int main() { int a[] = { 1,2,3,4,5,6,7,8,9,10 }; int b[] = { 5,6,7,8,9 }; int size=0; int *p = remove(a, 10, b,5, size); for (int i = 0; i < size; ++i) cout << p[i] << ' '; cout << endl; delete[] p; size = 0; char c[] = { 'a','b','i','m','c','d','e',}; char d[] = { 'k','i','m','n','u' }; char *q = remove(c, 7, d, 5,size); for (int i = 0; i < size; ++i) cout << q[i] << ' '; cout << endl; delete[] q; } Explanation: ...

March 9, 2020 ยท 2 min ยท Sobamemil