[c++] BOJ 15961๋ฒˆ :: ํšŒ์ „์ดˆ๋ฐฅ
Algorithm ๋ฌธ์ œ/BOJ 2020. 4. 2. 09:16

https://www.acmicpc.net/problem/15961 ๋‚ด ์ฝ”๋“œ #include #include #include #include using namespace std; int sushi_belt[3000000]; vector sushi_set; int main() { int n, d, k, c; cin >> n >> d >> k >> c; for (int i = 0; i > sushi_belt[i]; /* ์ดˆ๋ฐฅ k๊ฐœ์”ฉ ๋Š์–ด ์ฝ๊ธฐ */ int index = 0; for (int i = 0; i n - 1) ? i..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1๊ถŒ :: ์™ธ๋ฐœ ๋›ฐ๊ธฐ (๋ฌธ์ œ ID: JUMPGAME, ๋‚œ์ด๋„ : ํ•˜)
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 3. 29. 11:31

https://www.algospot.com/judge/problem/read/JUMPGAME ๋ฌธ์ œ ๋•…๋”ฐ๋จน๊ธฐ๋ฅผ ํ•˜๋‹ค ์งˆ๋ฆฐ ์žฌํ•˜์™€ ์˜ํ›ˆ์ด๋Š” ๋•…๋”ฐ๋จน๊ธฐ์˜ ๋ณ€์ข…์ธ ์ƒˆ๋กœ์šด ๊ฒŒ์ž„์„ ํ•˜๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒŒ์ž„์€ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด n*n ํฌ๊ธฐ์˜ ๊ฒฉ์ž์— ๊ฐ 1๋ถ€ํ„ฐ 9 ์‚ฌ์ด์˜ ์ •์ˆ˜๋ฅผ ์“ด ์ƒํƒœ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ฐจ๋ก€์ธ ์‚ฌ๋žŒ์€ ๋งจ ์™ผ์ชฝ ์œ— ์นธ์—์„œ ์‹œ์ž‘ํ•ด ์™ธ๋ฐœ๋กœ ๋›ฐ์–ด์„œ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ์นธ์œผ๋กœ ๋‚ด๋ ค๊ฐ€์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ ๊ฐ ์นธ์— ์ ํ˜€ ์žˆ๋Š” ์ˆซ์ž๋งŒํผ ์˜ค๋ฅธ์ชฝ์ด๋‚˜ ์•„๋ž˜ ์นธ์œผ๋กœ ์›€์ง์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ค‘๊ฐ„์— ๊ฒŒ์ž„ํŒ ๋ฐ–์œผ๋กœ ๋ฒ—์–ด๋‚˜๋ฉด ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ท ํ˜•์„ ์žƒ์–ด์„œ ๋‹ค๋ฅธ ๋ฐœ๋กœ ์„œ๊ฑฐ๋‚˜ ๋„˜์–ด์ ธ๋„ ๊ฒŒ์ž„์—์„œ ์ง‘๋‹ˆ๋‹ค๋งŒ, ์žฌํ•˜์™€ ์˜ํ›ˆ์ด๋Š” ์ Š๊ณ  ํ™œ๊ธฐ์ฐจ๊ธฐ ๋•Œ๋ฌธ์— ์™ธ๋ฐœ๋กœ ๋›ฐ์–ด๋‹ค๋‹ˆ๋Š” ๊ฒƒ์€ ์•„๋ฌด๊ฒƒ๋„ ์•„๋‹™๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๊ฑฑ์ •๋˜๋Š” ๊ฒƒ์€ ์ฃผ์–ด์ง„ ๊ฒŒ์ž„ํŒ์— ์‹œ์ž‘์ ์—์„œ ๋์ ์œผ๋กœ ๊ฐ€๋Š” ๋ฐฉ๋ฒ•์ด ..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ณผ์ œ 5. 2์˜ ํ™€์ˆ˜์ œ๊ณฑ์ˆ˜ - 1์€ ์†Œ์ˆ˜์ผ๊นŒ?
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 3. 28. 10:56

์†Œ์ˆ˜ ์ฐพ๊ธฐ ํ”„๋กœ๊ทธ๋žจ ๋ฐฉ๋ฒ• n-1๊นŒ์ง€ ๊ตฌํ•˜๊ธฐ O(n) n-1 ๊นŒ์ง€ ์†Œ์ˆ˜๋ฅผ ๋ชจ๋‘ ๊ตฌํ•˜๋Š” ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์งœ๊ธฐ ์†Œ์ˆ˜ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ ์†Œ์ˆ˜ ๋ฐฐ์—ด๋งŒ ๋Œ๋ฉด์„œ ๋‚˜๋ˆ„์–ด์ง€๋Š”์ง€ ํŒ๋‹จ O(n) ์†Œ์ˆ˜ ๋ฐฐ์—ด์„ ๋งŒ๋“œ๋Š” ๋ฐ์— O(n) => ๋ฉ”๋ฆฌํŠธ ์—†์Œ ๋ฃจํŠธ n๊นŒ์ง€ ๋Œ๋ฆฌ๋ฉด์„œ ์ง์ˆ˜ ์ œ์™ธํ•˜๊ธฐ O(sqrt(n)) ์กฐ๊ฑด ์ถ”๊ฐ€ ๋ช‡ ๊ฐœ์˜ ์†Œ์ˆ˜( 3, 5 )๋ฅผ ๊ฐ€์ง€๊ณ  ํ•ด๋‹น ์ˆ˜์˜ ๋ฐฐ์ˆ˜์ด๋ฉด ๋›ฐ์–ด๋„˜๊ธฐ 3, 5 ๊ณ„์‚ฐ ์‹œ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€์ง€ ์•Š์•˜์œผ๋ฉด ํ•ด๋‹น ์ˆ˜์˜ ๋ฐฐ์ˆ˜์—๋„ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€์ง€ ์•Š์Œ ๊ตฌํ˜„ ์‹œ ์ฃผ์˜ ํ•ด๋‹น ์ˆ˜๊ฐ€ 3์œผ๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€๋Š”์ง€, 5๋กœ ๋‚˜๋ˆ„์–ด๋–จ์–ด์ง€๋Š”์ง€๋ฅผ ๊ณ„์‚ฐํ•˜๋ ค๋ฉด ๋ชจ๋“ˆ๋Ÿฌ ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆผ ๋ณ€์ˆ˜ ํ•˜๋‚˜์”ฉ ์ง€์ •ํ•˜๊ณ  1์”ฉ ๋”ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌ์„ฑ 3๊ณผ 5์˜ ๊ณต๋ฐฐ์ˆ˜๊ฐ€ ๋‚˜์˜ค๋ฉด ๋จผ์ € ๊ฑฐ์น˜๋Š” 3์˜ if๋ฌธ์—์„œ continue ๋จ์œผ๋กœ ..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ณผ์ œ 4. 1000๋งŒ๊ฐœ ๋ฐ์ดํ„ฐ ํ€ต ์ •๋ ฌ ์‹œ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 3. 28. 10:42

Quick sort '์•Œ๊ณ ๋ฆฌ์ฆ˜' ์ „๊ณต ์ˆ˜์—…์‹œ๊ฐ„์— ๋‚˜์˜จ ๊ณผ์ œ์ธ '1000๋งŒ๊ฐœ ๋ฐ์ดํ„ฐ ์ •๋ ฌ ํ›„ ํ•ด์‹œ ๊ฐ’ ๊ตฌํ•˜๊ธฐ'๋ฅผ ํ•˜๋ฉด์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ด๋‹ค. ๋ถ„ํ•  ์ •๋ณต ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด ๊ตฌํ˜„๋˜๋Š” ์ •๋ ฌ ๋ฐฉ๋ฒ• ์‹œ๊ฐ„ ๋ณต์žก๋„ ์ตœ์•… : O(n^2) ํ‰๊ท  : O(nlogn) ์„ค๊ณ„๋ฅผ ํ†ตํ•ด์„œ ๊ฐœ์„  ๊ฐ€๋Šฅํ•œ ๋ถ€๋ถ„ ๊ตฌํ˜„ ๊ณผ์ • pivot์„ ์„ ํƒํ•œ๋‹ค. ์œ„์ชฝ ํฌ์ธํ„ฐ๊ฐ€ ๋‚ฎ์€ ์ชฝ์œผ๋กœ ๊ฐ€๋ฉด์„œ ํ”ผ๋ฒ—๋ณด๋‹ค ์ž‘์€ ์ˆ˜๋ฅผ ์ฐพ๋Š”๋‹ค. ์•„๋ž˜์ชฝ ํฌ์ธํ„ฐ๊ฐ€ ๋†’์€ ์ชฝ์œผ๋กœ ๊ฐ€๋ฉด์„œ ํ”ผ๋ฒ—๋ณด๋‹ค ํฐ ์ˆ˜๋ฅผ ์ฐพ๋Š”๋‹ค. ๋‘ ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์š”์†Œ๋ฅผ ๊ตํ™˜ํ•œ๋‹ค. 2-4๋ฅผ ๋ฐ˜๋ณตํ•œ๋‹ค. ๋‘ ํฌ์ธํ„ฐ๊ฐ€ ๊ต์ฐจํ•œ๋‹ค๋ฉด ํ˜„์žฌ ํ”ผ๋ฒ—๊ณผ ํ•ด๋‹น ์œ„์น˜์˜ ๊ฐ’์„ ๊ตํ™˜ํ•œ๋‹ค. ํ”ผ๋ฒ—๊ณผ ํ”ผ๋ฒ—๋ณด๋‹ค ์ž‘์€ section, ํ”ผ๋ฒ—๋ณด๋‹ค ํฐ section์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๊ฐ section์— ๋Œ€ํ•ด 1-5๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. section์˜ ํฌ๊ธฐ๊ฐ€ 0 ๋˜๋Š” 1์ด๋ฉด ..

[c++] ๋ฐฑ์ค€ 18809๋ฒˆ : Gaaaaaaaaaarden
Algorithm ๋ฌธ์ œ/BOJ 2020. 3. 26. 17:12

https://www.acmicpc.net/problem/18809 ์ฒซ๋ฒˆ์งธ ์ฝ”๋“œ #include #include #include #include using namespace std; struct seed { int y, x; }; int map[50][50]; vector landToSeed; vector Green; vector Red; int N, M, G, R; vector g; vector r; int dir_y[4] = {0,1,0,-1}; int dir_x[4] = {1,0,-1,0}; void printVector(vector& a) { // int์— land๋„ ๋„ฃ์„์ˆ˜ ์žˆ์„๊นŒ? vector::iterator iter; for (iter = a.begin(); iter != a.end(); i..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ณผ์ œ 3. Tony Hoare :: QuickSort ๋…ผ๋ฌธ ํ•ด์„ํ•˜๊ธฐ
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 3. 26. 16:56

QuickSort ๋…ผ๋ฌธ brief Part One: Theory ์ด sorting์€ ๋‘ ๊ฐœ์˜ ๊ฐ„๋‹จํ•œ ๋ณด์กฐ๋ฌธ์ œ๋กœ ๋‚˜๋‰˜์–ด ํ•ด๊ฒฐ๋  ์ˆ˜ ์žˆ๋Š”๋ฐ, ๊ฐ ๋ฌธ์ œ๋Š” ์ด๋ฏธ ์•Œ๋ ค์ง„ ๋ฐฉ์‹์œผ๋กœ ํ’€ ์ˆ˜ ์žˆ๋‹ค. Partition : key๊ฐ’์„ dividing line์— ๋”ฐ๋ผ ์œ„ ์•„๋ž˜๋กœ ๋‚˜๋ˆ„์–ด ์ด๋ถ„ํ•˜๋Š” ๊ฒƒ ์‹ค์ œ๋กœ ์ด dividing line์€ ํ”์น˜ ์•Š๊ณ , ์žˆ๋‹ค ํ• ์ง€๋ผ๋„ ์ฐพ๊ธฐ ํž˜๋“ ๋ฐ dividing line์ด ์กด์žฌํ•˜๊ณ  ๊ทธ๊ฒƒ์˜ ์œ„์น˜๋งŒ ์•ˆ๋‹ค๋ฉด item๋“ค์„ ์žฌ์ •๋ ฌํ•˜๊ธฐ๋Š” ์‰ฌ์›Œ์ง„๋‹ค. partition ๊ณผ์ • ์ •๋ ฌ๋˜์–ด์•ผํ•˜๋Š” ์•„์ดํ…œ์˜ ํ‚ค ์ค‘ ํŠน์ • ํ‚ค๋ฅผ ๊ณ ๋ฅธ๋‹ค. ์ด ํ‚ค๋Š” bound ๋ผ ๋ถˆ๋ฆฐ๋‹ค. dividing line ์•„๋ž˜์—๋Š” bound๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ key๊ฐ’์ด, ์œ„์ชฝ์—๋Š” ํฐ key ๊ฐ’์ด ์˜ค๊ฒŒ ํ•œ๋‹ค. dividing line์˜ ์œ„์น˜๋Š” ๋ฏธ๋ฆฌ ์•Œ ํ•„์š”..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ณผ์ œ 2. 1000๋งŒ๊ฐœ ๋ฐ์ดํ„ฐ ์‚ฝ์ž… ์ •๋ ฌ ์‹œ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 3. 25. 20:01

/* 2020-03-19 ์šฐํฌ์€ ์‚ฝ์ž…์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ */ #define _CRT_SECURE_NO_WARNINGS #include #include #include #include int buffer[10000000]; // ์ „์—ญ ๋ณ€์ˆ˜๋กœ ๋„ฃ์–ด์•ผ stack overflow๊ฐ€ ๋‚˜์ง€ ์•Š์Œ void fileOpen() { FILE *fp = fopen("d://algorithm/unsorted10000000.txt", "r"); int i = 0; int tmp = 0; if (fp == NULL) { printf("ํŒŒ์ผ์„ ์—ด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.\n"); } while (fscanf(fp, "%d ", &tmp)!=EOF) { buffer[i++] = tmp; } fclose(fp); } void insertSortin..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ณผ์ œ 1. ์‹œ๊ฐ„ ๋ณต์žก๋„ ๊ณ„์‚ฐ :: ๊ฐ ์‹œ๊ฐ„ ๋ณต์žก๋„์— ํ•ด๋‹นํ•˜๋Š” ์†Œ์š”์‹œ๊ฐ„์„ ๊ตฌํ•ด๋ณด์ž
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 3. 25. 19:52

์ฒซ๋ฒˆ์งธ ๊ณผ์ œ์ด๋‹ค. ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ f(n)์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์†Œ์š”์‹œ๊ฐ„์ด 1 nanosecond == 10^(-9) second ์ด๋ผ๊ณ  ํ•  ๋•Œ, ์™ผ์ชฝ์— ํ‘œ์‹œ๋œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์œ„์ชฝ์˜ ์‹œ๊ฐ„ ๋‚ด์— ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์™„๋ฃŒ๋˜๋ ค๋ฉด ์ตœ๋Œ€๋กœ ์–ด๋–ค N๊นŒ์ง€ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์„์ง€ ์•Œ์•„๋ณด์ž. ๋Œ€ํ‘œ๋กœ ํ•˜๋‚˜๋ฅผ ๊ณ„์‚ฐํ•ด๋ณด๋ฉด 1sec๋Š” 10^(9) nanosec ์ด๋ฏ€๋กœ n^2์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ n^2 = 10^(9) ๋กœ ๋‘๊ณ  ํ’€๋ฉด 1sec ๋งŒ์— ๊ณ„์‚ฐ๋  ์ˆ˜ ์žˆ๋Š” n ๊ฐ’์ด ๋‚˜์˜จ๋‹ค. n ๊ฐ’์€ ๋ชจ๋‘ ์ •์ˆ˜๋กœ ๊ฐ€์ •ํ•˜์˜€๋‹ค.