배열 6

[알고리즘] LRU with Java, remove, 시나리오의 중요성

4. Least Recently Used 설명 캐시메모리는 CPU와 주기억장치(DRAM) 사이의 고속의 임시 메모리로서 CPU가 처리할 작업을 저장해 놓았다가 필요할 바로 사용해서 처리속도를 높이는 장치이다. 워낙 비싸고 용량이 작아 효율적으로 사용해야 한다. 철수의 컴퓨터는 캐시메모리 사용 규칙이 LRU 알고리즘을 따른다. LRU 알고리즘은 Least Recently Used 의 약자로 직역하자면 가장 최근에 사용되지 않은 것 정도의 의미를 가지고 있습니다. 캐시에서 작업을 제거할 때 가장 오랫동안 사용하지 않은 것을 제거하겠다는 알고리즘입니다. 캐시의 크기가 주어지고, 캐시가 비어있는 상태에서 N개의 작업을 CPU가 차례로 처리한다면 N개의 작업을 처리한 후 캐시메모리의 상태를 가장 최근 사용된 작업..

[알고리즘] 배열 총 정리 with Java

string에 이어 배열 관련 문제까지 모두 끝마쳤다. 25%라고 하니 벌써 1/4를 푼 것이다. 뿌듯하기도 하면서 아직 기초를 다지는 시간인데 아직도 모르는 것이 있다고 생각하니 더 자극받고 더 잘하고 싶은 마음이 생겼다. 이번 알고리즘 풀이의 목적은 온전한 정리를 진행하며 내가 푼 문제들을 기록해나가며 완강하기인데, 지금까지는 효과가 매우 좋은 것 같다. 블로그 알고리즘 포스팅 글을 보며 내가 어떤 사소한(하지만 중요한) 것들을 배워나갔고, 적용은 잘 시키고 있는지 알 수 있었던 좋은 기회가 된 것 같다. 이번 주는 빠르게 3주 차 강의를 완강하는 것을 목표로 나아가고자 한다. 느리지만 정확하고, 제대로 나아가는 내가 될 것이다. 배운 것 정리 1. if, else if, else 에 대한 생각 . ..

[알고리즘] 뒤집은 소수 with Java, 숫자뒤집기에 대한 생각

주말 맞이 알고리즘~ 정리하면서 푸니까 좀 더 수월한 느낌이다. 오늘 배운 것 1. 숫자 뒤집기 . 나는 stringbuilder 변환 후 reverse() 함수를 사용했다. . 강의에서는 %, /를 이용했다. int i1 = Integer.parseInt(arr[j]); int res = 0; while(i1>0){ int t = i1%10; res = (res*10) + t; i1 = i1/10; } 2. 문제 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); String[] arr = ..

[알고리즘] 가위 바위 보 with Java, else if 에 대한 생각

3.1 절 맞이 알고리즘 문제 풀이 진행 중이다. 배열 문제도 빠르게 마무리 짓고 기본을 탄탄히 할 수 있는 개발자가 되었으면 좋겠다. 오늘 배운 것 1. 문제 풀이 . else if 로직에 대한 이해도를 높이는 계기가 되었다. . 비기는 로직 > A가 이기는 로직 > else B가 이기는 로직 import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); ArrayList a = new ArrayList(); ArrayList b = new ArrayList..

[알고리즘] 보이는 학생 with Java

3.1 절 맞이 알고리즘 문제 풀이 진행 중이다. 배열 문제도 빠르게 마무리 짓고 기본을 탄탄히 할 수 있는 개발자가 되었으면 좋겠다. 오늘 배운 것 1. 머리속으로 알고리즘 그리기 . 시나리오 흐름대로 한번 쭉 진행하고, 알고리즘적으로 구현해야 할 코드가 무엇인지 대략적으로라도 생각해보는 자세가 필요한 듯하다. 2. 문제 풀이 import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); ArrayList integers = new ArrayList(); f..

[알고리즘] 큰 수 출력하기 with Java

배열편을 공부해보고 있다. 이번 편은 어려운 로직은 딱히 없어서 복습한다는 느낌으로 풀고 갔다. 오늘 배운 것 1. 문제 풀이 import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); ArrayList integers = new ArrayList(); for (int j = 0; j < i; j++) { integers.add(kb.nextInt()); } solution(i,integers); } private static void solution(in..