[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ์žฌ๊ท€ํ˜ธ์ถœ (์™„์ „ํƒ์ƒ‰)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 7. 31. 09:51

์žฌ๊ท€ํ˜ธ์ถœ ์žฌ๊ท€ํ•จ์ˆ˜๋ž€ ํ•จ์ˆ˜ ๋‚ด์—์„œ ์ž๊ธฐ ์ž์‹ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•  ๋•Œ ๋ฐ˜๋ณต๋˜๋Š” ์ž‘์—…๋“ค์ด ๋Œ€ํ•ด์„œ๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ํ‘œํ˜„ํ•œ๋‹ค. ๊ธฐ์ € ์‚ฌ๋ก€๋ž€ ๋” ์ด์ƒ ์ชผ๊ฐœ์ง€์ง€ ์•Š๋Š” ๊ฐ€์žฅ ์ž‘์€ ์ž‘์—…์œผ๋กœ, ์ด์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ๋Š” ์žฌ๊ท€ํ˜ธ์ถœ์„ ๋ฉˆ์ถ”๊ณ  ๋‹ต์„ ๊ณง์žฅ ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค. ๊ธฐ์ € ์‚ฌ๋ก€๋ฅผ ์ •ํ•  ๋•Œ๋Š” ๋ชจ๋“  ์‚ฌ๋ก€์˜ ๋‹ต์ด ๊ธฐ์ € ์‚ฌ๋ก€๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณ„์‚ฐ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผํ•œ๋‹ค. ์™„์ „ ํƒ์ƒ‰ (== Brute Force, Exhaustive search) ์™„์ „ํƒ์ƒ‰์€ ์ปดํ“จํ„ฐ์˜ ์—ฐ์‚ฐ๋Šฅ๋ ฅ์„ ์ด์šฉํ•˜์—ฌ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋ชจ๋‘ ๋‚˜์—ดํ•˜๋ฉด์„œ ๋‹ต์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์ž…๋ ฅ์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์„ ๋•Œ ์ ์ ˆํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ฉฐ ๋” ๋น ๋ฅธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๊ธฐ๋ฐ˜์ด ๋œ๋‹ค. ๋‹ต์„ ๋ฌด์กฐ๊ฑด ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ, ์ฐพ๋Š”๋ฐ์— ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค..

[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค :: ์นดํŽซ (brute force)
Algorithm ๋ฌธ์ œ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2020. 5. 28. 21:50

์นดํŽซ ์ฝ”๋“œ #include #include #include using namespace std; vector solution(int brown, int yellow) { vector answer; vector candidate; for (int i = 1; i ๋งž์œผ๋ฉด (๊ฐ€๋กœ, ์„ธ๋กœ) ๊ธธ์ด๋ฅผ ๊ฒฐ๊ณผ vector์— ๋„ฃ์–ด์„œ return brown ๊ฐฏ์ˆ˜ = 2*๊ฐ€๋กœyellow + 2*์„ธ๋กœyellow +4 4 : ์–‘์ชฝ ๋ชจ์„œ๋ฆฌ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ #include #include using namespace std; vector solution(int brown, int red) { int len = brown / 2 + 2; int w = len - 3; int h = 3; while(w >= h){ if(w * h ..

[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค :: ์ˆซ์ž์•ผ๊ตฌ (brute force)
Algorithm ๋ฌธ์ œ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2020. 5. 28. 09:00

์ˆซ์ž์•ผ๊ตฌ ์ฝ”๋“œ #include #include using namespace std; bool check(int* arr, vector& bb) { int num = bb[0]; int s = bb[1]; int b = bb[2]; int n[3]; n[0] = num / 100; n[1] = (num - n[0] * 100) / 10; n[2] = (num - n[0] * 100 - n[1] * 10); //strike check int t_num = 0; for (int i = 0; i < 3; i++) { if (n[i] == arr[i]) t_num++; } if (t_num != s) return false; t_num = 0; for (int i = 0; i < 3; i++) { if (n[i]..

[c++] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค :: ์†Œ์ˆ˜ ์ฐพ๊ธฐ (brute force)
Algorithm ๋ฌธ์ œ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2020. 5. 24. 10:24

https://programmers.co.kr/learn/courses/30/lessons/42839 ์ฝ”๋“œ #include #include #include #include using namespace std; set res; void test(int num) { if (num num์ด ์ตœ๋Œ€ 9999999 (10^7) if (num%i == 0) return; } res.insert(num); return; } void makePrime(vector& memo,int num) { if (memo.size()==0) return; int size = memo.size(); for (int i = 0; i < size; i++) { // 7 int value = memo[i]; test(num * 10 + v..

[c++] Longest Increasing Sequence (๋ฌธ์ œ ID : LIS, ๋‚œ์ด๋„ : ํ•˜) :: ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1๊ถŒ
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 4. 8. 16:35

https://www.algospot.com/judge/problem/read/LIS ๋ฌธ์ œ ์–ด๋–ค ์ •์ˆ˜ ์ˆ˜์—ด์—์„œ 0๊ฐœ ์ด์ƒ์˜ ์ˆซ์ž๋ฅผ ์ง€์šฐ๋ฉด ์ด ์ˆ˜์—ด์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด (subsequence) ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 10 7 4 9 ์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์—๋Š” 7 4 9, 10 4, 10 9 ๋“ฑ์ด ์žˆ๋‹ค. ๋‹จ, 10 4 7 ์€ ์›๋ž˜ ์ˆ˜์—ด์˜ ์ˆœ์„œ์™€ ๋‹ค๋ฅด๋ฏ€๋กœ 10 7 4 9 ์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ์•„๋‹ˆ๋‹ค. ์–ด๋–ค ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ์ˆœ์ฆ๊ฐ€ํ•  ๋•Œ ์ด ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด (increasing subsequence) ๋ผ๊ณ  ํ•œ๋‹ค. ์ฃผ์–ด์ง„ ์ˆ˜์—ด์˜ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด ์ค‘ ๊ฐ€์žฅ ๊ธด ๊ฒƒ์˜ ๊ธธ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ. ์–ด๋–ค ์ˆ˜์—ด์˜ ๊ฐ ์ˆ˜๊ฐ€ ์ด์ „์˜ ์ˆ˜๋ณด๋‹ค ํด ๋•Œ, ์ด ์ˆ˜์—ด์„ ์ˆœ์ฆ๊ฐ€ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ์ž…๋ ฅ ์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ˆ˜ C..