์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ/์๊ณ ๋ฆฌ์ฆ

์์ ๋น ๋ฅด๊ฒ ์ฐพ๊ธฐ, sqrt (), ์๋ผํ ์คํ ๋ค์ค์ ์ฒด + pow()
๊ณต๋ต๋ฒ : TargetNum์ด ์์์ธ์ง ์๋์ง ํ์ธํ๊ณ ์ถ๋ค๋ฉด, (1) TargetNum์ sqrt ()๋ก ์ ๊ณฑ๊ทผ์ ๊ตฌํ์ฌ ์ฝ์๋ฅผ 2๋ถํฐ ๋ฃจํธTargetNum๊น์ง๋ง ๊ฒํ ํ๋ค. (2) ์๋ผํ ์คํ ๋ค์ค์ ์ฒด ๊ฐ๋ ์ ์ด์ฉํ์ฌ for๋ฌธ์ ๋๋ฉด์ ํน์ i์ ๋ฐฐ์๋ฅผ ์ ๋ถ ์ง์๋๊ฐ๋ค. (1) ์ ๊ณฑ๊ทผ๊น์ง ์ฝ์ ๋ฒ์๋ฅผ ์ค์ธ ๊ฒฝ์ฐ -> ์ ์์ ์ผ๋ก ์์๊ฐ ์ถ๋ ฅ๋จ #include #include using namespace std; bool isPrimeNumber(int x) { int end = (int)sqrt(x); for (int i = 2; i
์ด์งํ์ ํต์ฌ์ฝ๋
์ฌ๊ท๋ฅผ ํ์ฉํ ์ด์งํ์์ ํต์ฌ ๊ฐ๋ ์ด ๋๋ ์ฝ๋ def Search(start,end,target): if start==end: //~~ return mid = (start+end)/2 if nums[mid]
BFS ์ฝ๋
bfs ํจ์์์๋ (1) push()ํ์๋ง์ check=true๋ก ๋ง๋ค์ด์ฃผ๊ณ (2) ํ๊ฐ ๋น์ด์์ง ์๋ ํ ๊ณ์ ๋ฐ๋ณตํ ๋๋ง๋ค front()๋ฅผ pop() ํด์ฃผ๋ ๊ฒ์ด ๊ฝค๋ ์ค์ํด๋ณด์ธ๋ค. ๊ทธ๋ฌ๋ค๋ณด๋ ์ฒซ๋ ธ๋๋ ๊ทธ์ผ๋ง๋ก ํ์ ๋ค์ด๊ฐ์๋ง์(push) ๋น ์ ธ๋์ค๊ฒ(pop)๊ฒ ๋๋ค. main ํจ์์์๋ ์ฐจ๋ถํ๊ฒ ์ธ์ ๋ฆฌ์คํธ๋ฅผ ๊ตฌํํด์ผํ๋ค. #include #include #include using namespace std; vector numbers[7]; int check[7]; void bfs(int start) { queue que; que.push(start); check[start] = true; while (!que.empty()) { int x =que.front(); que.pop(); cout
๋ฐฐ์ด ํ์ , ์ ์ ๋ฐฐ์ด ๋ด์์ ํน์ ์์๋ฅผ ์ ํํ ์์น๋ก ์ด๋ํ๊ณ ์ถ์ ๋
๋ฐฐ์ด ์ ๋ณด์ ์ธ๋ฑ์ค ์ ๋ณด๊ฐ ๋๊ฐ๊ฐ ํ์ํ๋ค. ํน์ ์์์ ์๋ ์ธ๋ฑ์ค์ ์์๋ฅผ ๋ณด๋ด๊ณ ์ถ์ ์์น์ ์ธ๋ฑ์ค์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ์ธ๋ฑ์ค ์ฌ์ด๋ฅผ for๋ฌธ์ผ๋ก ๋๋ฉด์ ๋ฐฐ์ด์ ํ์นธ์ฉ ๋น๊ฒจ์ค์ผํ๋ ๋ค์ ๋ฒ๊ฑฐ๋ก์ด ์์ ์ด ํ์ํ๋ค. ์๋ ์ฝ๋๋ 8๋ฒ์งธ ์ซ์๋ฅผ 2๋ฒ์งธ ์์น๋ก ๋ณด๋ด๊ณ ์ถ๋ค๊ณ ๊ฐ์ ํ๊ณ ์์ฑํ ๊ฒ์ด๋ค. #include #include using namespace std; void ratate(array& arr, int wantPos, int target) { int last = arr[t]; for (int i = t; i > s; i--) { arr[i] = arr[i-1]; } arr[s] = last; } int main() { array arr = {1,2,3,4,5,6,7,8,9,10}; ratate(..
[c++] ์ฝ์ ์ ๋ ฌ
์ฝ์ ์ ๋ ฌ์ด๋ ์ซ์๋ฅผ ์ํ๋ ์์น๋ฅผ ์ฐพ์๊ฐ์ ์ฝ์ ํ๋ ์ ๋ ฌ์ด๋ค. ํ์ํ ๋งํผ๋ง ์์ง์ฌ์ ์๊ฐ ๋ณต์ก๋๋ n์ ์ ๊ณฑ์ด๋ผ๋ ์ ์์ ๋์ผํ ์ง๋ผ๋ ์ฐ์ฐ์๊ฐ ์ ์ผ๋ฏ๋ก ๋ฒ๋ธ ์ ๋ ฌ์ด๋ ์ ํ ์ ๋ ฌ๋ณด๋ค ๋น ๋ฅด๋ค. 2 6 4 9 8 1 3 5 7 ๋ผ๋ 9๊ฐ์ ์ซ์๋ฅผ ํ ๋ฐฐ์ด์ ๋ด๊ณ ์ฝ์ ์ ๋ ฌ์ ํ์ฉํด ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ๊พธ๋ ์๋ฎฌ๋ ์ด์ ์ ํด๋ณด์. ์ ์ผ ์ ์ซ์๋ฅผ 0๋ฒ์งธ ์ธ๋ฑ์ค, ๋ง์ง๋ง ์ซ์๋ฅผ 8๋ฒ์งธ ์ธ๋ฑ์ค๋ผ ๊ฐ์ ํ๋ค. 2 6 4 9 8 1 3 5 7 //2 6 -> 4->2 ๋ชจ๋ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋น๊ตํ๋ค๊ฐ ๋งจ ์ ์ ์ฐฉ ) 1 2 4 6 8 9 3 5 7 //ํ์ฌ ์ํฉ(๋ถ์์ ํ์ง๋ง ์ ๋ ฌ์ด ์ฐจ์ธฐ ๋๊ณ ์์) 1 2 _ 4 6 8 9 '3' 5 7 //3์ 4 ์์ ๋ฃ์. (9-> 8-> 6-> 4 ๋ชจ๋ ๋ฐ๋ณต๋ฌธ์ผ๋ก ๋น๊ตํ๋ค๊ฐ 4 ์ ์ ์ฐฉ) ..
[c++] ๋ฒ๋ธ์ ๋ ฌ
๋ฒ๋ธ ์ ๋ ฌ์ด๋ ์์ ์๋ ๊ฐ๊ณผ ๋น๊ตํด์ ์์น๋ฅผ ๋ฐ๊ฟ์ฃผ๋ ์ ๋ ฌ ๋ฐฉ๋ฒ์ด๋ค. ์ ํ ์ ๋ ฌ์ ์ ์ผ ์์ ๊ฐ์ ์ฐพ์์ ์์ ๊ฐ์ ธ๋ค ๋๋ ์์ผ๋ก ์ ๊ฐ๋๋ค๋ฉด, (์ ํ ์ ๋ ฌ ์ค๋ช ๋งํฌ: c++ ์ ํ ์ ๋ ฌ ํ์ฉํด์ ๋ฐฐ์ด ์ ์ซ์๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ๊พธ๊ธฐ (tistory.com)) ๋ฒ๋ธ ์ ๋ ฌ์ ์ ์ผ ํฐ ๊ฐ์ ์ ์ฐจ ๋ค๋ก ์ ๋ฐฐ๋ณด๋ด๋ ์์ผ๋ก ์ ๊ฐ๋๋ค. ์๋ํ๋ฉด ์ฒซ ๋ฐฐ์ด๊ฐ๋ถํฐ ์ผ๊ด๋๊ฒ ๋ฐ๋ก ์(๋ค)์ ์๋ ๋ฐฐ์ด๊ฐ๊ณผ ๋น๊ตํด์ ํฐ ๊ฐ์ ๋ค๋ก ๋ฌผ๋ฌ๋๋๋ก ์ค์์น๋ฅผ ๋ฐ๋ณตํ๊ธฐ ๋๋ฌธ์ด๋ค. 2 6 4 9 8 1 3 5 7 ๋ผ๋ 9๊ฐ์ ์ซ์๋ฅผ ํ ๋ฐฐ์ด์ ๋ด๊ณ ๋ฒ๋ธ ์ ๋ ฌ์ ํ์ฉํด ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ๊พธ๋ ์๋ฎฌ๋ ์ด์ ์ ํด๋ณด์. ์ ์ผ ์ ์ซ์๋ฅผ 0๋ฒ์งธ ์ธ๋ฑ์ค, ๋ง์ง๋ง ์ซ์๋ฅผ 8๋ฒ์งธ ์ธ๋ฑ์ค๋ผ ๊ฐ์ ํ๋ค. 2 6 4 9 8 1 3 5 7 //2์ 6์ ๋น๊ตํ๋ค. ..
[c++] [์ ํ ์ ๋ ฌ] ํ์ฉํด์ ๋ฐฐ์ด ์ ์ซ์๋ค์ ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ๊พธ๊ธฐ
์ ํ ์ ๋ ฌ 2 6 4 9 8 1 3 5 7 ๋ผ๋ ์ซ์๋ฅผ ์ ํ ์ ๋ ฌ์ ํ์ฉํด ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ๊พธ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. ์ ์ผ ์ ์ซ์๋ฅผ 0๋ฒ์งธ ์ธ๋ฑ์ค, ๋ง์ง๋ง ์ซ์๋ฅผ 8๋ฒ์งธ ์ธ๋ฑ์ค๋ผ๊ณ ๊ฐ์ ์ ํ๋ค๋ฉด, 2 6 4 9 8 1 3 5 7 //0๋ฒ์งธ ์ธํ ์ค๋ถํฐ ๋๊น์ง ํ์ธํ๊ณ (1๋ฐ๊ฒฌ) 1 2 6 4 9 8 3 5 7 //(1์ ์ ์ผ ์์ผ๋ก) 1 2 6 4 9 8 3 5 7 //1๋ฒ์งธ ์ธํ ์ค๋ถํฐ ๋๊น์ง ํ์ธํ๊ณ (2๋ฐ๊ฒฌ, ๊ทธ๋๋ก) 1 2 6 4 9 8 3 5 7 //2๋ฒ์งธ ์ธํ ์ค๋ถํฐ ๋๊น์ง ํ์ธํ๊ณ (3๋ฐ๊ฒฌ) 1 2 3 6 4 9 8 5 7 //(3์ ์์ผ๋ก) 1 2 3 6 4 9 8 5 7 //3๋ฒ์งธ ์ธํ ์ค๋ถํฐ ๋๊น์ง ํ์ธํ๊ณ (4๋ฐ๊ฒฌ) 1 2 3 4 6 9 8 5 7 //(4๋ฅผ ์์ผ๋ก) 1 2 3 4 6 9 8 5 7 //..
c++ ๋ฐฐ์ด ์ค๋ฆ์ฐจ์ ๋ด๋ฆผ์ฐจ์ ๊ตฌํ
๋ฐฐ์ด ์์ ์ฌ๋ฌ ๊ฐ์ด ๋ค์ฃฝ๋ฐ์ฃฝ ์์ฌ ์์ ๋, ์ด๊ฒ๋ค์ด ์ค๋ฆ์ฐจ์(์์ ๊ฐ์ด ๊ฐ์ฅ ์์ ์ค๊ณ ๋ฐฐ์ด ๋ท ์ธ๋ฑ์ค๋ก ๊ฐ์๋ก ์ธ๋ฑ์ค ๊ฐ์ด ์ปค์ง)์ผ๋ก ์ ๋ ฌ๋๋๋ก ์ด์คํฌ๋ฌธ์ ์จ์ ์ง์ ํ๋์ฝ๋ฉ์ผ๋ก ๊ตฌํํด๋ณด์๋ค. ๊ฐ์ข ์ ๋ ฌ ๊ธฐ๋ฒ์ ๋ฐฐ์ฐ๊ณ ๋๋ฉด ์ฝ๋๊ฐ ๋ฌ๋ผ์ง ๊ฒ์ด๋ค. #include using namespace std; int main() { int num[10] = { 986,4,7,12,45,895,3,7,34,5 }; for (int i =0; i+1
![2. [c++] ํน์ ๊ฐ ์ดํ์ ์ ์ค์์ ๊ฐ์ฅ ํฐ 2์ ๊ฑฐ๋ญ์ ๊ณฑ๋ง ๋ฐํํ๋ ํจ์๋ง๋ค๊ธฐ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9a6Wq%2FbtrfoGmXgnf%2FpzNbK9cONFQxpDUZua0mak%2Fimg.png)
2. [c++] ํน์ ๊ฐ ์ดํ์ ์ ์ค์์ ๊ฐ์ฅ ํฐ 2์ ๊ฑฐ๋ญ์ ๊ณฑ๋ง ๋ฐํํ๋ ํจ์๋ง๋ค๊ธฐ
*์ง์ ์ง ๊ฒ์์ผ๋ก ๋ชฉ์ ์ ๋ณด๋ค ๋ ์ต์ ์ธ ํจ์๊ฐ ์กด์ฌํ ์ ์์ต๋๋ค.* - ํน์ ๊ฐ n์ ์์ ๋กญ๊ฒ ์ ๋ ฅํ๋ฉด, - n ์ดํ์ ์ ์ค์์ ๊ฐ์ฅ ํฐ 2์ ๊ฑฐ๋ญ์ ๊ณฑ๋ง์ ๋ฐํํ๋ ํจ์๋ฅผ ๋ง๋ค์ด๋ณด์๋ค. ์์) 100์ ๋ ฅ์ 64 ์ถ๋ ฅ 2์ ๋ ฅ์ 2์ถ๋ ฅ 1์ ๋ ฅ์ 1์ถ๋ ฅ #include using namespace std; int func(int* n) { int max =1; for (int i = 1; i * 2 > n; while (n > n; } int* a = &n; n = func(a); cout
๊น์ด ์ฐ์ ํ์(DFS, Depth First Search), ๋๋น ์ฐ์ ํ์(BFS, Breadth First Search))
BFS, DFS๋ ๊ทธ๋ํ์ ํ์ ๊ธฐ๋ฒ์ผ๋ก ๋ชฉ์ ์ ์์์ ํ ์ ์ ์์ ์์ํ์ฌ ๋ชจ๋ ์ ์ ์ ๋ฐฉ๋ฌธํ๋ ๋ฐ ์๋ค. ๊น์ด ์ฐ์ ํ์ - DFS(Depth-first search) ์์ ๋ ธ๋๋ฅผ ์ฐ์ ์ ์ผ๋ก ํ์ ์ฆ, ์์ง ๋ฐฉ๋ฌธ๋์ง ์์ ์ธ์ ๋ ธ๋(์์ ๋ ธ๋)๋ฅผ ์ฐ์ ์ ์ผ๋ก ํ์ ๊น์ด ์ฐ์ ํ์์ ํ์ชฝ๋ง ์ฃฝ์ด๋ผ ํ๋ค๊ฐ ๋์ด์ ํ ๊ณณ์ด ์์ผ๋ฉด ๋ค์ ๋์์์ ๋ค๋ฅธ ํ์ชฝ์ ์ฃฝ์ด๋ผ ํ๋ ํ์์ด๋ค. ๊น์ด ์ฐ์ ํ์์ Stack์ ํตํด ๊ตฌํ๋๋ค. ๋๋น ์ฐ์ ํ์ - BFS(Breadth-first search)=๋ ๋ฒจ ์ํ(level-order traversal) ์ฝ๋๋งํฌ : BFS ์ฝ๋ (tistory.com) ๊ฐ์ ์ ๋ชจ๋ ๊ฐ์ค์น๊ฐ ๊ฐ์ ๋, ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ์์ ์ ์ ์ ๊ธฐ์ค์ผ๋ก ๊ฐ๊น์ด ์ ์ ์ ๋จผ์ ๋ฐฉ๋ฌธํ๋ค. ๋ฐฉ..