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..
https://www.algospot.com/judge/problem/read/JUMPGAME ๋ฌธ์ ๋ ๋ฐ๋จน๊ธฐ๋ฅผ ํ๋ค ์ง๋ฆฐ ์ฌํ์ ์ํ์ด๋ ๋ ๋ฐ๋จน๊ธฐ์ ๋ณ์ข ์ธ ์๋ก์ด ๊ฒ์์ ํ๊ธฐ๋ก ํ์ต๋๋ค. ์ด ๊ฒ์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด n*n ํฌ๊ธฐ์ ๊ฒฉ์์ ๊ฐ 1๋ถํฐ 9 ์ฌ์ด์ ์ ์๋ฅผ ์ด ์ํ๋ก ์์ํฉ๋๋ค. ๊ฐ ์ฐจ๋ก์ธ ์ฌ๋์ ๋งจ ์ผ์ชฝ ์ ์นธ์์ ์์ํด ์ธ๋ฐ๋ก ๋ฐ์ด์ ์ค๋ฅธ์ชฝ ์๋ ์นธ์ผ๋ก ๋ด๋ ค๊ฐ์ผ ํฉ๋๋ค. ์ด ๋ ๊ฐ ์นธ์ ์ ํ ์๋ ์ซ์๋งํผ ์ค๋ฅธ์ชฝ์ด๋ ์๋ ์นธ์ผ๋ก ์์ง์ผ ์ ์์ผ๋ฉฐ, ์ค๊ฐ์ ๊ฒ์ํ ๋ฐ์ผ๋ก ๋ฒ์ด๋๋ฉด ์ ๋ฉ๋๋ค. ๊ท ํ์ ์์ด์ ๋ค๋ฅธ ๋ฐ๋ก ์๊ฑฐ๋ ๋์ด์ ธ๋ ๊ฒ์์์ ์ง๋๋ค๋ง, ์ฌํ์ ์ํ์ด๋ ์ ๊ณ ํ๊ธฐ์ฐจ๊ธฐ ๋๋ฌธ์ ์ธ๋ฐ๋ก ๋ฐ์ด๋ค๋๋ ๊ฒ์ ์๋ฌด๊ฒ๋ ์๋๋๋ค. ๋ค๋ง ๊ฑฑ์ ๋๋ ๊ฒ์ ์ฃผ์ด์ง ๊ฒ์ํ์ ์์์ ์์ ๋์ ์ผ๋ก ๊ฐ๋ ๋ฐฉ๋ฒ์ด ..
์์ ์ฐพ๊ธฐ ํ๋ก๊ทธ๋จ ๋ฐฉ๋ฒ 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 ๋จ์ผ๋ก ..
Quick sort '์๊ณ ๋ฆฌ์ฆ' ์ ๊ณต ์์ ์๊ฐ์ ๋์จ ๊ณผ์ ์ธ '1000๋ง๊ฐ ๋ฐ์ดํฐ ์ ๋ ฌ ํ ํด์ ๊ฐ ๊ตฌํ๊ธฐ'๋ฅผ ํ๋ฉด์ ์ ๋ฆฌํ ๋ด์ฉ์ด๋ค. ๋ถํ ์ ๋ณต ๋ฐฉ๋ฒ์ ํตํด ๊ตฌํ๋๋ ์ ๋ ฌ ๋ฐฉ๋ฒ ์๊ฐ ๋ณต์ก๋ ์ต์ : O(n^2) ํ๊ท : O(nlogn) ์ค๊ณ๋ฅผ ํตํด์ ๊ฐ์ ๊ฐ๋ฅํ ๋ถ๋ถ ๊ตฌํ ๊ณผ์ pivot์ ์ ํํ๋ค. ์์ชฝ ํฌ์ธํฐ๊ฐ ๋ฎ์ ์ชฝ์ผ๋ก ๊ฐ๋ฉด์ ํผ๋ฒ๋ณด๋ค ์์ ์๋ฅผ ์ฐพ๋๋ค. ์๋์ชฝ ํฌ์ธํฐ๊ฐ ๋์ ์ชฝ์ผ๋ก ๊ฐ๋ฉด์ ํผ๋ฒ๋ณด๋ค ํฐ ์๋ฅผ ์ฐพ๋๋ค. ๋ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ์์๋ฅผ ๊ตํํ๋ค. 2-4๋ฅผ ๋ฐ๋ณตํ๋ค. ๋ ํฌ์ธํฐ๊ฐ ๊ต์ฐจํ๋ค๋ฉด ํ์ฌ ํผ๋ฒ๊ณผ ํด๋น ์์น์ ๊ฐ์ ๊ตํํ๋ค. ํผ๋ฒ๊ณผ ํผ๋ฒ๋ณด๋ค ์์ section, ํผ๋ฒ๋ณด๋ค ํฐ section์ผ๋ก ๋๋๊ณ ๊ฐ section์ ๋ํด 1-5๋ฅผ ์คํํ๋ค. section์ ํฌ๊ธฐ๊ฐ 0 ๋๋ 1์ด๋ฉด ..
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..
QuickSort ๋ ผ๋ฌธ brief Part One: Theory ์ด sorting์ ๋ ๊ฐ์ ๊ฐ๋จํ ๋ณด์กฐ๋ฌธ์ ๋ก ๋๋์ด ํด๊ฒฐ๋ ์ ์๋๋ฐ, ๊ฐ ๋ฌธ์ ๋ ์ด๋ฏธ ์๋ ค์ง ๋ฐฉ์์ผ๋ก ํ ์ ์๋ค. Partition : key๊ฐ์ dividing line์ ๋ฐ๋ผ ์ ์๋๋ก ๋๋์ด ์ด๋ถํ๋ ๊ฒ ์ค์ ๋ก ์ด dividing line์ ํ์น ์๊ณ , ์๋ค ํ ์ง๋ผ๋ ์ฐพ๊ธฐ ํ๋ ๋ฐ dividing line์ด ์กด์ฌํ๊ณ ๊ทธ๊ฒ์ ์์น๋ง ์๋ค๋ฉด item๋ค์ ์ฌ์ ๋ ฌํ๊ธฐ๋ ์ฌ์์ง๋ค. partition ๊ณผ์ ์ ๋ ฌ๋์ด์ผํ๋ ์์ดํ ์ ํค ์ค ํน์ ํค๋ฅผ ๊ณ ๋ฅธ๋ค. ์ด ํค๋ bound ๋ผ ๋ถ๋ฆฐ๋ค. dividing line ์๋์๋ bound๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ key๊ฐ์ด, ์์ชฝ์๋ ํฐ key ๊ฐ์ด ์ค๊ฒ ํ๋ค. dividing line์ ์์น๋ ๋ฏธ๋ฆฌ ์ ํ์..
/* 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..
์ฒซ๋ฒ์งธ ๊ณผ์ ์ด๋ค. ์๊ฐ ๋ณต์ก๋๊ฐ f(n)์ธ ์๊ณ ๋ฆฌ์ฆ์ ์์์๊ฐ์ด 1 nanosecond == 10^(-9) second ์ด๋ผ๊ณ ํ ๋, ์ผ์ชฝ์ ํ์๋ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ณ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ์์ชฝ์ ์๊ฐ ๋ด์ ์๊ณ ๋ฆฌ์ฆ์ด ์๋ฃ๋๋ ค๋ฉด ์ต๋๋ก ์ด๋ค N๊น์ง ๊ณ์ฐํ ์ ์์์ง ์์๋ณด์. ๋ํ๋ก ํ๋๋ฅผ ๊ณ์ฐํด๋ณด๋ฉด 1sec๋ 10^(9) nanosec ์ด๋ฏ๋ก n^2์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋ ์๊ณ ๋ฆฌ์ฆ์์ n^2 = 10^(9) ๋ก ๋๊ณ ํ๋ฉด 1sec ๋ง์ ๊ณ์ฐ๋ ์ ์๋ n ๊ฐ์ด ๋์จ๋ค. n ๊ฐ์ ๋ชจ๋ ์ ์๋ก ๊ฐ์ ํ์๋ค.
Comment