์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ
[C# ์๋ฃ๊ตฌ์กฐ] ๋์ ๋ฐฐ์ด(List: C++vector์ ์ ์ฌํจ) ๊ตฌํ
Board ํด๋์ค ์์์ List๋ฅผ ์จ๋ณด๊ณ , ๊ทธ List์ ๋์ ๋ฐฐ์ด ๋ก์ง์ ์ง์ ๊ตฌํํ๋ ์ฝ๋ List using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Algorithm { class Board { public int[] _data = new int[25]; //๋ฐฐ์ด public List _data2 = new List(); //๋์ ๋ฐฐ์ด public LinkedList _data3 = new LinkedList(); //(์ด์ค)์ฐ๊ฒฐ ๋ฆฌ์คํธ public void Initialize() { _data2.Add(101); _data..
[C# ์๋ฃ๊ตฌ์กฐ] ์ ํ ์๋ฃ ๊ตฌ์กฐ ( ๋ฐฐ์ด vs ๋์ ๋ฐฐ์ด vs ์ฐ๊ฒฐ ๋ฆฌ์คํธ)
public int[] _data = new int[25]; //๋ฐฐ์ด public List _data1 = new List(); //๋์ ๋ฐฐ์ด public LinkedList _data3 = new LinkedList(); //(์ด์ค)์ฐ๊ฒฐ ๋ฆฌ์คํธ **์ฃผ์ C++๊ณผ ํผ๋๋ ์ ์๋๋ฐ C#์์์ List๋ C++์์์ Vector, C#์์์ LinkedList๋ C++์์์ List ๊ฐ๊ฐ ๋์ํด์ ๋น์ทํ๊ฒ ์ง์ฌ์ง ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ ํ ๊ตฌ์กฐ๋ ์๋ฃ๋ฅผ ์์ฐจ์ ์ผ๋ก ๋์ดํ ํํ - ๋ฐฐ์ด - ์ฐ๊ฒฐ ๋ฆฌ์คํธ - ์คํ / ํ ๋น์ ํ ๊ตฌ์กฐ๋ ํ๋์ ์๋ฃ ๋ค์ ๋ค์์ ์๋ฃ๊ฐ ์ฌ ์ ์๋ ํํ - ํธ๋ฆฌ - ๊ทธ๋ํ 1. ๋ฐฐ์ด (1) ์ฅ์ : ์ฐ์์ฑ(์์ ์ ๊ทผ Random Access ๊ฐ๋ฅ) (2) ๋จ์ : ์ฌ์ด์ฆ ์ถ๊ฐ / ์ถ์ ..
[์ํ๊ณผ ๋ฐ๋ณต] ํฉํ ๋ฆฌ์ผ ๊ณ์ฐ ํ๋ก๊ทธ๋จ
ํฉํ ๋ฆฌ์ผ์ ์ํ, ๋ฐ๋ณต ๊ฐ๋ ์ ๋ง์ถ์ด์ ํ๋ก๊ทธ๋จ์ ์ง๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. 1. ์ํ #include #include #include using namespace std; int factorial(int n) { cout
C# Queue์ Stack ํน์ฑ์ LinkedList๋ก ๊ทธ๋๋ก ๊ตฌํ
Queue์ Stack์ LinkedList์ ์ถ์ํ์ด๋ผ๊ณ ํ ์ ์๋ค. (์ ์ ์ ์ถ, ํ์ ์ ์ถ ๋ง์ ๊ตฌํํ ๋, ํ์ ์คํ์ด ํจ์ฌ ์ง๊ด์ ์.) list์ ๊ฒฝ์ฐ์๋ stack์ ๊ตฌํํ๋๋ฐ ์ด๋ ค์์ด ์์ผ๋, queue ๊ตฌํ์๋ ๋ฌธ์ ๊ฐ ์๋ค. ๊ฐ์ฅ ์ ์์๋ฅผ ์ง์ฐ๊ณ ๋๋ฉด ๋ค์ ์์ธ ์์๋ค์ ํ์นธ์ฉ ์์ผ๋ก ๋ฏธ๋ค์ผํ๋(์ด์ฌ์์ผ์ค์ผํ๋) ์์ ์ ์ถ๊ฐํด์ผํ๊ธฐ ๋๋ฌธ! ๊ฒ์์์ Stack์ UI๋ฅผ ๊ตฌํํ ๋ ์์ฉ๊ฐ๋ฅํ๋ค. ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ฌ UI ์ฐฝ๋ถํฐ ์ฌ๋ผ์ง๊ฒ ๋ง๋ค ์ ์๊ธฐ ๋๋ฌธ! queue ๊ฐ์ ๊ฒฝ์ฐ๋ ๋คํธ์ํฌ ์ ์ฌ๋ฌ๋ช ์ ์ ์ ๊ฐ ํ ๋ชฌ์คํฐ๋ฅผ ํ๊ฒํ๋ค๊ณ ํ์ ๋ ๊ฐ์ฅ ๋จผ์ ๋๋ฆฐ ์ ์ ์ ํ๊ฒฉ๋ถํฐ ๋ค์ด๊ฐ ์ ์๋๋ก ํ๊ฒฉ๊ฐ์ ์ค์ธ์ฐ๊ธฐ ์ํฌ ๋ ์ฌ์ฉํ ์ ์์ ๊ฒ์ด๋ค. namespace ConsoleApp1 { class P..

์์ ๋น ๋ฅด๊ฒ ์ฐพ๊ธฐ, 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
[C++]์ํํ ๊ตฌํ, ์ค์๊ธฐ ์์
ํ๋ ๊ฐ์ฅ ๋จผ์ ์ ๋ ฅํ ์๋ฃ๋ฅผ ๊ฐ์ฅ ๋จผ์ ์ถ๋ ฅํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค. ์ ๋ฅ์ฅ์์, ์ฌ๋๋ค์ด ์ค์ง์ด ์์ ๊ธฐ๋ค๋ฆฌ๋ค๊ฐ ๋ฒ์ค๊ฐ ์ค๋ฉด ์์๋๋ก ํ๋ ์์๋ฒ์ ์ ์๊ฐํ๋ฉด ๋๋ค. ํ๋ฅผ ๊ตฌํํ๋ ๊ธฐ๋ณธ idea๋ ๋ฐฐ์ด ๋ด head(์ฒ์ ์ ์ฌ๋)์ tail(๋ง์ง๋ง์ ์ ์ฌ๋) ์ธ๋ฑ์ค์ ์ก๊ณ enqueue(์ค์ด ๊ธธ์ด์ง๋ ์ํ) ํ ๋๋ง๋ค tail++; dequeue(์์ฌ๋๋ถํฐ ๋ฒ์ค์ ํ์ ์ค์ด ์งง์์ง๋ ์ํ) ํ ๋๋ง๋ค head++;์ ํ๋ ๊ฒ์ด๋ค. ํ์ง๋ง ๋ฐฐ์ด์ ์์ฃผ ํฌ๊ฒ ์ก์ง ์๋ ๊ฒฝ์ฐ, ํ์ ๋ฐฐ์ด ํฌ๊ธฐ ๋ง์ง๋ง๊น์ง head๊ฐ ๋๋ฌํ์ฌ ์์ชฝ์ ๋น ๋ฐฐ์ด(head๊ฐ ๊ฑฐ์ณ์ง๋๊ฐ)๋ค์ ์ฌํ์ฉํ ์ ์์ด ๋ฉ๋ชจ๋ฆฌ๋ญ๋น๊ฐ ์ฌํ ํธ์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ํํ๋ฅผ ์ด๋ค๋ฉด ์ ํ ํ์ ๋นํ์ฌ ๋์ผํ ๋ฐฐ์ด์ด์ง๋ง ๊พธ์คํ๊ฒ head๊ฐ ๊ฑฐ์ณ์ง๋๊ฐ ์ธ๋ฑ์ค..
๋ฐฐ์ด ํ์ , ์ ์ ๋ฐฐ์ด ๋ด์์ ํน์ ์์๋ฅผ ์ ํํ ์์น๋ก ์ด๋ํ๊ณ ์ถ์ ๋
๋ฐฐ์ด ์ ๋ณด์ ์ธ๋ฑ์ค ์ ๋ณด๊ฐ ๋๊ฐ๊ฐ ํ์ํ๋ค. ํน์ ์์์ ์๋ ์ธ๋ฑ์ค์ ์์๋ฅผ ๋ณด๋ด๊ณ ์ถ์ ์์น์ ์ธ๋ฑ์ค์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ์ธ๋ฑ์ค ์ฌ์ด๋ฅผ 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 ์ ์ ์ฐฉ) ..