๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (115)
let's get IT with DAVINA ๐ป
โ ๋ฌธ์ ์ค๋ช "*"์ ๋์ด์ ๋๋น๋ฅผ 1์ด๋ผ๊ณ ํ์ ๋, "*"์ ์ด์ฉํด ์ง๊ฐ ์ด๋ฑ๋ณ ์ผ๊ฐํ์ ๊ทธ๋ฆฌ๋ ค๊ณ ํฉ๋๋ค. ์ ์ n ์ด ์ฃผ์ด์ง๋ฉด ๋์ด์ ๋๋น๊ฐ n ์ธ ์ง๊ฐ ์ด๋ฑ๋ณ ์ผ๊ฐํ์ ์ถ๋ ฅํ๋๋ก ์ฝ๋๋ฅผ ์์ฑํด๋ณด์ธ์. ๐ซ ์ ํ์ฌํญ 1 ≤ n ≤ 10 ๐๏ธ ์ ์ถ๋ ฅ ์ ์ ๋ ฅ #1 3 ์ถ๋ ฅ #1 * ** *** ๋ณ์ฐ๊ธฐ ๋ฌธ์ ์ ๋์ผํ ๊ตฌํ โ๏ธ๋น๋'s ํ์ด ์ฒ์์ ์ฃผ์ด์ง ์ฝ๋๋ค์ ๋ณด๊ณ ์ด๊ฒ ๋ญ๊ฐํ๊ณ ๋นํฉํ์ง๋ง..์ด์ฐ๋๊ฑด n์ ์ ๋ ฅ๋ฐ์์ ๋ ๋ณ์ฐ๊ธฐ ๋ฌธ์ ์ ๋์ผํ ํจํด์ผ๋ก ๋ณด์๋ค.. const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); let input = ..
Deque (Double Ended Queue) ์์ชฝ ๋์์ ์ฝ์ /์ญ์ ๊ฐ ์ ๋ถ ๊ฐ๋ฅํ ์๋ฃ๊ตฌ์กฐ ๋ฑ์ ์ฑ์ง ์์์ ์ถ๊ฐ → O(1) ์์์ ์ ๊ฑฐ → O(1) ์ ์ผ ์/๋ค์ ์์ ํ์ธ → O(1) ์ ์ ์/๋ค๊ฐ ์๋ ๋๋จธ์ง ์์๋ค์ ํ์ธ/๋ณ๊ฒฝ์ด ์์น์ ์ผ๋ก ๋ถ๊ฐ๋ฅ ๊ตฌํ const int MX = 1000005; int dat[2*MX+1]; //์๋ค๋ก ๋ค ์ฝ์ ์ด ๊ฐ๋ฅํด์ ์์ชฝ์ผ๋ก ํ์ฅํ๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ 2*MX+1 int head=MX, tail=MX;
โ ๋ฌธ์ ์ค๋ช ๋จธ์ฑ์ด๋ ์ถ์ด ๋ ์๋ ์์ด์ค ์๋ฉ๋ฆฌ์นด๋ ธ๋ง ๋ง์ญ๋๋ค. ์์ด์ค ์๋ฉ๋ฆฌ์นด๋ ธ๋ ํ์์ 5,500์์ ๋๋ค. ๋จธ์ฑ์ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ money๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋จธ์ฑ์ด๊ฐ ์ต๋๋ก ๋ง์ค ์ ์๋ ์๋ฉ๋ฆฌ์นด๋ ธ์ ์ ์์ ๋จ๋ ๋์ ์์๋๋ก ๋ด์ ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ๐ซ ์ ํ์ฌํญ 0
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ค, ๋ฌธ์ ์์ฒด๋ ์ด๋ ต์ง ์์์ง๋ง ๊ณ์ ํ ์คํธ ์ผ์ด์ค๊ฐ console์ ์ ๋ ฅํ์๋์ ๋ค๋ฅธ output์ returnํ๊ธธ๋ ํ์ฐธ์ ํด๋งธ๋ค.. ํ debugging tool์ ์ด์ฉํด์ ํ๋จ๊ณ์ฉ ๋ด ์ฝ๋๋ฅผ ๋ฏ์ด๋ณด๊ณ ์ ํ๋๋ "octal literals are not allowed in strict mode" ๋ ์๋ฌ์ ๋ง์ฃผ์ณค๋ค.. ์์ ์ฒ์๋ณด๋ ์๋ฌ๋ผ ์์ฑํ๋ค ๋ธ๋ก๊ทธ! ๐ซ octal literals are not allowed in strict mode 010๊ณผ ๊ฐ์ ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ ๋ ๋ง๋ ์ ์๋ ์ค๋ฅ๋ผ๊ณ ํ๋ค. es6 ๋ชจ๋์ ์ ์ํ๋ ๊ฒฝ์ฐ ๋ชจ๋์ ์ค์ฝํ๋ ์๋์ผ๋ก strict ๋ชจ๋๊ฐ ๋๋๋ฐ ํน๋ณํ strict ๋ชจ๋์์๋ ์ด์ ์ 010 ๊ณผ ๊ฐ์ 8์ง์ ํ๊ธฐ๋ฒ์ ์ ๋งคํ ํ๊ธฐ๋ฒ์ผ๋ก ๊ท์ ํด ..
์ฐ๊ฒฐ ๋ฆฌ์คํธ ์์๋ค์ ์ ์ฅํ ๋ ๊ทธ ๋ค์ ์์๊ฐ ์๋ ์์น๋ฅผ ํฌํจ์ํค๋ ๋ฐฉ์์ผ๋ก ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ์ฑ์ง k๋ฒ์งธ ์์๋ฅผ ํ์ธ/๋ณ๊ฒฝํ๊ธฐ ์ํด O(k)๊ฐ ํ์ํจ ์ฐ๋ฆฌ๋ ์ฒซ ๋ฒ์งธ ์์์ ์ฃผ์๋ง ์๊ณ ์๊ธฐ ๋๋ฌธ, ์ฐจ๊ทผ์ฐจ๊ทผ ๋ค์ ์ฃผ์๋ก ๋์ด๊ฐ๋ฉฐ ์ฐพ์์ผ ํจ ์์์ ์์น์ ์์๋ฅผ ์ถ๊ฐ/์ ๊ฑฐ๋ O(1) ์ด์ ์์์ ๋ค์ ์ฃผ์๋ฅผ ๋ณ๊ฒฝ๋ง ํด์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ๋จ, ์ถ๊ฐ/์ ๊ฑฐ ํ๊ณ ์ถ์ ์์น์ ์ฃผ์๋ฅผ ์๊ณ ์์ ๊ฒฝ์ฐ์๋ง O(1) ์์๋ค์ด ๋ฉ๋ชจ๋ฆฌ ์์ ์ฐ์ํด์์ง ์์ Cache hit rate๊ฐ ๋ฎ์ง๋ง ํ ๋น์ด ๋ค์ ์ฌ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ์ข ๋ฅ ๋จ์ผ ์ฐ๊ฒฐ ๋ฆฌ์คํธ : ๊ฐ ์์๊ฐ ์์ ์ ๋ค์ ์์์ ์ฃผ์๋ฅผ ๋ค๊ณ ์์ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ : ๊ฐ ์์๊ฐ ์์ ์ ์ด์ & ๋ค์ ์ฃผ์๋ฅผ ๋ ๋ค ๋ค๊ณ ์์ ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ : ๋์ด ์ฒ..
โ ๋ฌธ์ ์ค๋ช ๋จธ์ฑ์ด๋ค ํผ์๊ฐ๊ฒ๋ ํผ์๋ฅผ ์ฌ์ฏ ์กฐ๊ฐ์ผ๋ก ์๋ผ ์ค๋๋ค. ํผ์๋ฅผ ๋๋ ๋จน์ ์ฌ๋์ ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, n๋ช ์ด ์ฃผ๋ฌธํ ํผ์๋ฅผ ๋จ๊ธฐ์ง ์๊ณ ๋ชจ๋ ๊ฐ์ ์์ ํผ์ ์กฐ๊ฐ์ ๋จน์ด์ผ ํ๋ค๋ฉด ์ต์ ๋ช ํ์ ์์ผ์ผ ํ๋์ง๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ๐ซ ์ ํ์ฌํญ 1 ≤ n ≤ 100 ๐๏ธ ์ ์ถ๋ ฅ ์ n result 6 1 10 5 4 2 โ๏ธ ๋น๋'s ํ์ด n์ด 6์ ๋ฐฐ์๊ฐ ๋๋ ์๊ฐ๊น์ง ๊ณ์ n์๋ k๋ฅผ ๊ณฑํด์ฃผ๋ฉฐ ์ฃผ์์ ์์ ๋ง๋ค๋ ค๋ค ๋ณด๋ ์๊ฐ ์ด๊ณผ๋ก ํ ์คํธ๋ฅผ ํต๊ณผํ์ง ๋ชปํ๋ค.. ๊ฒฐ๊ตญ ์ฌ๋ฌ ๊ฒ์์ ํด๋ณธ ๋ค, ์ ์ด์ k=6์ผ๋ก ํ ๋นํ์ฌ 6์๋ฐฐ์๋ฅผ ๋๋ ค๋๊ฐ๋ฉฐ n์ผ๋ก ๋๋ ๋จ์ด์ง๋ ์๊ฐ๊น์ง k๋ฅผ ๋๋ ค์ฃผ๋ฉด ๋๋๊ฑฐ์๋ค.. ๋๋ n์ ์ด๋ป๊ฒ๋ ๋ฐ๊พธ๋ ค๊ณ ๊ณ์ ๋์ ํ๊ณ ๋ฐ๊ฟจ๋๋ฐ ..
๋ฐฐ์ด ๋ฉ๋ชจ๋ฆฌ ์์ ์์๋ฅผ ์ฐ์ํ๊ฒ ๋ฐฐ์นํ ์๋ฃ๊ตฌ์กฐ ๋ฐฐ์ด์ ์ฑ์ง O(1)์ k๋ฒ์งธ ์์๋ฅผ ํ์ธ/๋ณ๊ฒฝ ๊ฐ๋ฅ ์ถ๊ฐ์ ์ผ๋ก ์๋ชจ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ์(=overhead)๊ฐ ๊ฑฐ์ ์์ Cache hit rate๊ฐ ๋์ cache hit rate: ์บ์๊ฐ ์ ์ค๋๋ ์ ๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์ฐ์ํ ๊ตฌ๊ฐ์ ์ก์์ผ ํด์ ํ ๋น์ ์ ์ฝ์ด ๊ฑธ๋ฆผ ๊ธฐ๋ฅ๊ณผ ๊ตฌํ ์์์ ์์น์ ์๋ ์์๋ฅผ ํ์ธ/๋ณ๊ฒฝ → O(1) ์์๋ฅผ ๋์ ์ถ๊ฐ → O(1) ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐ → O(1) ์์์ ์์น์ ์์๋ฅผ ์ถ๊ฐ/์ ๊ฑฐ → O(N) ex) ๋ง์น ์ฑ ์ฅ์ ์ฑ ์ด ์ฐ์ํด์ ๊ฝํ์์ ๋ ์ค๊ฐ์ ์ฑ ์ ๋ฃ๊ธฐ ์ํด์ ๋๋จธ์ง ์ฑ ๋ค์ ๋ฐ์ด์ผํ๋ ๊ฒ๊ณผ ๊ฐ์ ์ํฉ insert ํจ์ void insert(int idx, int num, int arr[], int&len){ for(l..
์ต๋น๊ฐ ๊ตฌํ๊ธฐ ๋๋ฌด ์ด๋ ค์ ๋ค.. ๋ค๋น๊ฐ ๊ตฌํ๊ธฐ.. ํผ์ ํ์ผ๋ก๋ ๋์ ํ ์๊ฐ์๋์ ์ฌ๋ฌ ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํด๋ดค์ง๋ง.. ์ฒ์์ ๋ฐฐ์ด์ด ์๋ ๋น ๊ฐ์ฒด์ ๋ฃ์ด์ค๋ค๋ ์๊ฐ์ ํ๋๊ฒ ์ ค ๋ฉ๋ถ์ด์๋ค.. ๊ฒจ์ฐ๊ฒจ์ฐ ์ฌ๋ฌ ๊ฐ๋ฅผ ์งฌ๋ฝํด์ ๋ด๊ฐ ์ดํดํ๋๋ก ์ฝ๋๋ฅผ ์ง๊ณ ๊ฒจ์ฐ ํต๊ณผ ํ๋ค์.. โ ๋ฌธ์ ์ค๋ช ์ต๋น๊ฐ์ ์ฃผ์ด์ง ๊ฐ ์ค์์ ๊ฐ์ฅ ์์ฃผ ๋์ค๋ ๊ฐ์ ์๋ฏธํฉ๋๋ค. ์ ์ ๋ฐฐ์ด array๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ต๋น๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ์ต๋น๊ฐ์ด ์ฌ๋ฌ ๊ฐ๋ฉด -1์ return ํฉ๋๋ค. ๐ซ ์ ํ์ฌํญ 0