Least Recently Used(카카오 캐시 문제 변형) 캐시메모리는 CPU와 주기억장치(DRAM) 사이의 고속의 임시 메모리로서 CPU가 처리할 작업 을 저장해 놓았다가 필요할 바로 사용해서 처리속도를 높이는 장치이다. 워낙 비싸고 용량이 작아 효율적으로 사용해야 한다. 철수의 컴퓨터는 캐시메모리 사용 규칙이 LRU 알고리즘을 따 른다. LRU 알고리즘은 Least Recently Used 의 약자로 직역하자면 가장 최근에 사용되지 않 은 것 정도의 의미를 가지고 있습니다. 캐시에서 작업을 제거할 때 가장 오랫동안 사용하지 않은 것을 제거하겠다는 알고리즘입니다. 만약 캐시의 사이즈가 5이고 작업이 2 3 1 6 7 순으로 저장되어 있다면, (맨 앞이 가장 최근에 쓰인 작업이고, 맨 뒤는 가장 오랫동..
알고리즘 풀이
Special Sort(구글 인터뷰) N개의 정수가 입력되면 당신은 입력된 값을 정렬해야 한다. 음의 정수는 앞쪽에 양의정수는 뒷쪽에 있어야 한다. 또한 양의정수와 음의정수의 순서에는 변함이 없어야 한다. ▣ 입력설명 첫 번째 줄에 정수 N(5
선택 정렬 N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 선택정렬입니다. ▣ 입력설명 첫 번째 줄에 자연수 N(1
function solution(s){ let answer=0; let stack=[]; for (let i = 0; i < s.length; i++) { if (s[i] === '(') stack.push('(') else { stack.pop() if (s[i - 1] === ')') answer++ else answer += stack.length } } return answer; } let a="(((()(()()))(())()))(()())"; console.log(solution(a)); 교육과정 설계 현수는 1년 과정의 수업계획을 짜야 합니다. 수업중에는 필수과목이 있습니다. 이 필수과목은 반드시 이수해야 하며, 그 순서도 정해져 있 습니다. 만약 총 과목이 A, B, C, D, E, F, ..
https://programmers.co.kr/learn/courses/30/lessons/64061?language=javascript 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 후위식 연산(postfix) 후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요. 만약 3*(5+2)-9 을 후위연산식으로 표현하면 352+*9- 로 표현되며 그 결과는 12입니다. ▣ 입력설명 첫 줄에 후위연산식이 주어집니다. 연산식의 길이는 50을 넘지 않습니다. 식은 1~9의 숫자와 +, -, *, / 연산자로만 이루어진다. ▣ 출력..
모든 아나그램 찾기(해쉬, 투포인터, 슬라이딩 윈도우) S문자열에서 T문자열과 아나그램이 되는 S의 부분문자열의 개수를 구하는 프로그램을 작성하 세요. 아나그램 판별시 대소문자가 구분됩니다. 부분문자열은 연속된 문자열이어야 합니다. ▣ 입력설명 첫 줄에 첫 번째 S문자열이 입력되고, 두 번째 줄에 T문자열이 입력됩니다. S문자열의 길이는 10,000을 넘지 않으며, T문자열은 S문자열보다 길이가 작거나 같습니다. ▣ 출력설명 S단어에 T문자열과 아나그램이 되는 부분문자열의 개수를 출력합니다. ▣ 입력예제 1 bacaAacba abc ▣ 출력예제 1 3 출력설명: {bac}, {acb}, {cba} 3개의 부분문자열이 "abc"문자열과 아나그램입니다. function compareMaps(map1, map..
최대 매출 현수의 아빠는 제과점을 운영합니다. 현수 아빠는 현수에게 N일 동안의 매출기록을 주고 연속 된 K일 동안의 최대 매출액이 얼마인지 구하라고 했습니다. 만약 N=10이고 10일 간의 매출기록이 아래와 같습니다. 이때 K=3이면 12 15 11 20 25 10 20 19 13 15 연속된 3일간의 최대 매출액은 11+20+25=56만원입니다. 여러분이 현수를 도와주세요. ▣ 입력설명 첫 줄에 N(5
공통원소 구하기 A, B 두 개의 집합이 주어지면 두 집합의 공통 원소를 추출하여 오름차순으로 출력하는 프로 그램을 작성하세요. ▣ 입력설명 첫 번째 줄에 집합 A의 크기 N(1 6) { sum -= arr[lt++] } else { answer++ sum -= arr[lt++] } } return answer; } let a=[1, 2, 1, 3, 1, 1, 1, 2]; console.log(solution(6, a));