๋ฌธ์ ๋ฌธ์ ํ์ด LRU(Least Recently Used) ์๊ณ ๋ฆฌ์ฆ ์บ์(Cache)์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ์๊ณ ๋ฆฌ์ฆ ์บ์๊ฐ ์ฌ์ฉํ๋ ๋ฆฌ์์ค์ ํฌ๊ธฐ๋ ์ ํ๋์ด ์์ ์บ์๋ ์ ํ๋ ๋ฆฌ์์ค ๋ด์์ ๋ฐ์ดํฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ ์ฅ ๋ฐ ์ฐธ์กฐํ ์ ์์ด์ผ ํจ ๋ฉ๋ชจ๋ฆฌ ์์์ ๊ฐ์ฅ ์ต๊ทผ์ ์ฌ์ฉ๋ ์ ์ด ์๋ ์บ์์ ๋ฉ๋ชจ๋ฆฌ๋ถํฐ ๋์ฒดํ๋ฉฐ ์๋ก์ด ๋ฐ์ดํฐ๋ฅผ ๊ฐฑ์ ์ฝ๋ function solution(s, w) { let answer = Array.from({length: s}); for(let i = 0; i < w.length; i++) { if(!answer.includes(w[i])) { //Cache Miss์ผ ๊ฒฝ์ฐ if(answer.length === s) { //๋ฉ๋ชจ๋ฆฌ ์ฌ์ด์ฆ๊ฐ ๋ชจ๋ ์ฐผ์ ๊ฒฝ์ฐ answer.pop(..
๋ฌธ์ N๊ฐ์ ์ซ์๊ฐ ์ ๋ ฅ๋๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ ์ฝ์ ์ ๋ ฌ์ ๋๋ค. ๋ฌธ์ ํ์ด ์ฝ์ ์ ๋ ฌ(Insertion Sort) ์ ์์ ์นด๋๋ฅผ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ๊ณผ ์ ์ฌ ์๋ฃ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ์ด๋ฏธ ์ ๋ ฌ๋ ๋ฐฐ์ด ๋ถ๋ถ๊ณผ ๋น๊ต ๋น๊ต ํ ์์ ์ ์์น๋ฅผ ์ฐพ์ ์ฝ์ ํจ์ผ๋ก์จ ์ ๋ ฌ์ ์์ฑ ๋งค ์์๋ง๋ค ํด๋น ์์๋ฅผ ์ฝ์ ํ ์ ์๋ ์์น๋ฅผ ์ฐพ์ ํด๋น ์์น์ ์ ์ฌ ์ฝ๋ function solution(...arr) { let answer = arr; for(let i = 1; i 0; j--) { //ํ์ฌ ์์ ์์ ๋์ฌ ์๋ ์๋ฃ ๋ฐฐ..
๋ฌธ์ N๊ฐ์ ์ ์๊ฐ ์ ๋ ฅ๋๋ฉด ๋น์ ์ ์ ๋ ฅ๋ ๊ฐ์ ์ ๋ ฌํด์ผ ํ๋ค. ์์ ์ ์๋ ์์ชฝ์ ์์ ์ ์๋ ๋ท์ชฝ์ ์์ด์ผ ํ๋ค. ๋ํ ์์ ์ ์์ ์์ ์ ์์ ์์์๋ ๋ณํจ์ด ์์ด์ผ ํ๋ค. ๋ฌธ์ ํ์ด ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ํํ๋ค๊ฐ ์ธ๋ฑ์ค ์์๊ฐ ์์ ์ ์์ผ ๊ฒฝ์ฐ์ ์์ ์ ์๋ฅผ ์ ์ธํ ๊ฐ์ฅ ์์ ์ธ๋ฑ์ค ์๋ฆฌ๊น์ง ์ด์ ์ธ๋ฑ์ค ์์์์์๋ฅผ ๋ฐ๊พผ๋ค. ์ฝ๋ function solution(...arr) { let answer = arr; let front = 0; for(let i = 0; i front; j--) { //๊ฐ์ฅ ์๊น์ง ์ด๋ [arr[j - 1], arr[j]] = [arr[j], arr[j - 1..
๋ฌธ์ N๊ฐ์ ์ซ์๊ฐ ์ ๋ ฅ๋๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ ๋ฒ๋ธ์ ๋ ฌ์ ๋๋ค. ๋ฌธ์ ํ์ด ๋ฒ๋ธ ์ ๋ ฌ(Bubble Sort) ์๋ก ์ธ์ ํ ๋ ์์๋ฅผ ๊ฒ์ฌํ์ฌ ์ ๋ ฌํ๋ ์๊ณ ๋ฆฌ์ฆ ์ธ์ ํ 2๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋น๊ตํ์ฌ ํฌ๊ธฐ๊ฐ ์์๋๋ก ๋์ด ์์ง ์์ผ๋ฉด ์๋ก ๊ตํ ์ ํ ์ ๋ ฌ๊ณผ ๊ธฐ๋ณธ ๊ฐ๋ ์ด ์ ์ฌ ์ฒซ ๋ฒ์งธ ์๋ฃ์ ๋ ๋ฒ์งธ ์๋ฃ๋ฅผ, ๋ ๋ฒ์งธ ์๋ฃ์ ์ธ ๋ฒ์งธ ์๋ฃ๋ฅผ, (๋ง์ง๋ง - 1)๋ฒ์งธ ์๋ฃ์ ๋ง์ง๋ง ์๋ฃ๋ฅผ ๋น๊ต ๋ฐ ๊ตํํ์ฌ ์ ๋ ฌ 1ํ ์ํ๋ฅผ ๋ง์น๋ฉด ๊ฐ์ฅ ํฐ ์๋ฃ๊ฐ ๋งจ ๋ค๋ก ์ด๋ํ๋ฏ๋ก 2ํ์ ์์๋ ๋งจ ๋์ ์๋ ์๋ฃ๋ ์ ๋ ฌ์์ ์ ์ธ ์ฝ๋ function solution(...arr) { let answer = arr; for(let i = 0; i < arr.length - 1; i++) {..
๋ฌธ์ N๊ฐ์ ์ซ์๊ฐ ์ ๋ ฅ๋๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ ์ ํ์ ๋ ฌ์ ๋๋ค. ๋ฌธ์ ํ์ด ์ ํ์ ๋ ฌ(Selection Sort) ์ ํ์ ๋ ฌ์ ๊ธฐ์กด์ ์๋ฆฌ๊ฐ ์ ํด์ ธ ์์_์ ์๋ฆฌ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ ์ฃผ์ด์ง ๋ฆฌ์คํธ ์ค์ ์ต์ value๋ฅผ ํ์ ํด๋น ๊ฐ์ ๋งจ ์์ ์์นํ value ๊ต์ฒด ์ฐธ์กฐ๋ฅผ ๋ง์น ํด๋น ์์น์ ์ธ๋ฑ์ค๋ฅผ ์ ์ธํ๊ณ ๋๋จธ์ง ๋ฆฌ์คํธ๋ฅผ ์์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๊ต์ฒด n๊ฐ์ ์ฃผ์ด์ง ๋ฆฌ์คํธ => ์๊ฐ๋ณต์ก๋ ์ n^2 ์ฝ๋ function solution(...arr) { let answer = arr; for(let i = 0; i < arr.length; i++) { for(let j = (i + 1); j < arr.length; j++) { //์์ ์ ์ ์ธํ ๋ค์ ์ธ๋ฑ์ค ์์๋ถํฐ ์..
๋ฌธ์ ํ์๋ 1๋ ๊ณผ์ ์ ์์ ๊ณํ์ ์ง์ผ ํฉ๋๋ค. ์์ ์ค์๋ ํ์๊ณผ๋ชฉ์ด ์์ต๋๋ค. ์ด ํ์๊ณผ๋ชฉ์ ๋ฐ๋์ ์ด์ํด์ผ ํ๋ฉฐ, ๊ทธ ์์๋ ์ ํด์ ธ ์์ต๋๋ค. ๋ง์ฝ ์ด ๊ณผ๋ชฉ์ด A, B, C, D, E, F, G๊ฐ ์๊ณ , ์ฌ๊ธฐ์ ํ์๊ณผ๋ชฉ์ด CBA๋ก ์ฃผ์ด์ง๋ฉด ํ์๊ณผ๋ชฉ์ C, B, A๊ณผ๋ชฉ์ด๋ฉฐ ์ด ์์๋๋ก ๊ผญ ์์ ๊ณํ์ ์ง์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์ ์์๋ B๊ณผ๋ชฉ์ C๊ณผ๋ชฉ์ ์ด์ํ ํ์ ๋ค์ด์ผ ํ๊ณ , A๊ณผ๋ชฉ์ C์ B๋ฅผ ์ด์ํ ํ์ ๋ค ์ด์ผ ํ๋ค๋๊ฒ์ ๋๋ค. ํ์๊ฐ C, B, D, A, G, E๋ก ์์ ๊ณํ์ ์ง๋ฉด ์ ๋๋ก ๋ ์ค๊ณ์ด์ง๋ง C, G, E, A, D, B ์์๋ก ์งฐ๋ค๋ฉด ์ ๋ชป ์ค๊ณ๋ ์์ ๊ณํ์ด ๋ฉ๋๋ค. ์์ ๊ณํ์ ๊ทธ ์์๋๋ก ์์ ์์ ์ด ์ด์๋๋ฉด ๋ค์ ์์ ์ ์์ํ๋ค๋ ๊ฒ์ผ๋ก ํด์ํฉ๋๋ค. ์์ ๊ณํ์์์ ๊ฐ ๊ณผ๋ชฉ์ ๋ฌด์กฐ๊ฑด ์ด..
๋ฌธ์ ๋ฌธ์ ํ์ด 1๋ฒ ์์๋ถํฐ 8๋ฒ ์์๊น์ง ํ ์๋ฆฌ์ ๋ชจ์ฌ๋๊ธฐ ์ํด ๊ฐ ์์์ ๋ํ๋๋ ๋ฒํธ๋ค์ ์คํ์ ์์๋๋ก ์ ์ฅ ๋ฒํธ๊ฐ ์ ์ฅ๋ ์คํ์ ์ํํ๋ฉด์ K ์ฐจ๋ก๊ฐ ๋ ๋๋ง๋ค ํด๋น ์ธ๋ฑ์ค์ ์์๋ฅผ ์คํ์์ ์ญ์ ๋ง์ฝ์ ํด๋น ์คํ์ ๋๊น์ง ๋์๋ค๋ฉด ๋ค์ ์ฒ์์ผ๋ก ํ๊ทํ๊ธฐ ์ํด ์์์ ํฌ์ธํฐ๋ฅผ ์ธ๋ฑ์ค 0์ผ๋ก ์ด๊ธฐํ ์์ ๊ฐ์ ์ฐ์ฐ์ ์คํ์ ์ฌ์ด์ฆ๊ฐ 1(๋ง์ง๋ง์ ๋จ์ ์์)์ด ๋ ๋๊น์ง ๋ฐ๋ณต ์ํ ์ฝ๋ function solution(n, k) { let answer = 0; let stack = Array.from({ length: n }, (v, i) => i + 1); let pt = 0; //์คํ์ ์ธ๋ฑ์ค ์์๋ค์ ์ฐธ์กฐํ๊ธฐ ์ํ ์์์ ํฌ์ธํฐ let call = 0; //K๋ฒ์งธ์ ํด๋นํ๋ ์ธ๋ฑ์ค ์์๋ฅผ ์ญ์ ํด..
๋ฌธ์ ๋ฌธ์ ํ์ด ์ฌ๋ ๊ดํธ์ผ ๊ฒฝ์ฐ ์คํ์ ๊ณ์ ์ ์ฅ ๋ซ๋ ๊ดํธ์ผ ๊ฒฝ์ฐ์๋ ์์ ์ธ๋ฑ์ค ์์์ ๋ฐ๋ผ ๋ค๋ฅธ ์ฐ์ฐ ์ํ ์์ ์ธ๋ฑ์ค ์์๊ฐ ์ฌ๋ ๊ดํธ์ผ ๊ฒฝ์ฐ(๋ ์ด์ )๋ ๋ ์ด์ ํ์์ ํด๋นํ๋ ์ฌ๋ ๊ดํธ๋ฅผ ์คํ์์ ์ญ์ (์ญ์ ๋ ์คํ์ ํฌ๊ธฐ) === (์ ๋จ ๋ ์ ๋ง๋๊ธฐ ์กฐ๊ฐ) ์์ ์ธ๋ฑ์ค ์์๊ฐ ๋ซ๋ ๊ดํธ์ผ ๊ฒฝ์ฐ(์ ๋ง๋๊ธฐ ๋๋จ)๋ ์ ๋ง๋๊ธฐ ์ค ๊ฐ์ฅ ์์ ๋ง๋๊ธฐ์ ์์๋จ์ ์คํ์์ ์ญ์ ์ญ์ ๋ ๋ง๋๊ธฐ ๋๋จ์ ์กฐ๊ฐ ํ๋๊ฐ ๋จ์ ์์ ์ฝ๋ function solution(p) { let answer = 0; let stack = []; for (let i = 0; i < p.length; i++) { if (p[i] === ")") { if (p[i - 1] === "(") { // ๋ ์ด์ ์ผ ๊ฒฝ์ฐ stack.pop..