본문 바로가기

분류 전체보기113

LRU 알고리즘이란 무엇인가? ▏목적 ◦ LRU 알고리즘 이해하기 ▏시작하는 말 정처기 자격증 준비했을 때 이론을 공부했었다. 그런데 마침 오늘 프로그래머스에서 문제를 보는데 LRU를 사용해야 하는 문제였다. 그래서 오늘은 그 LRU알고리즘을 설명해보려고 한다. ▏LRU 란 무엇인가? LRU (Least Recently Used) : 가장 오랫동안 참조하지 않은 페이지를 교체하는 기법 페이지 교체 알고리즘들의 종류중 하나로 가장 최근에 사용되지 않은 페이지를 제거하는 알고리즘이다. 대표적인 방법으로 전에 포스팅했던 Queue 형식을 생각하면 된다. ▏원리 크기가 4인 배열이 있다고 가정했을 때, 처음 4번은 들어온 순서대로 넣어주면 된다. 하지만 오른쪽 처럼 숫자 5를 넣으려고 한다면 가장 먼저 넣었던 1 (오래된 데이터)를 제거하고.. 2021. 8. 20.
[Programmers/2018 KAKAO BLIND RECRUITMENT] 캐시 - Java 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 캐시 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/17680 cacheSize) { cache.removeFirst(); } } return answer; } 2021. 8. 19.
[Programmers/Lv2) 구명보트 - Java 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 구명보트 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42885 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 문제 풀이 배열 people을 정렬시킨다. hap 이 limit을 넘어간다면 i-- 해준다. 마지막 남은 값이 하나라면 answer++ 구명보트를 최대한 적게 사용해야 하므로 가장 무거운 사람부터 고려하면 되는 문제이므로 바로 오름차순 정렬을 했다. 내.. 2021. 8. 10.
[Programmers/Summer,Winter Coding(2018)] 방문 길이 - Java 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 방문 길이 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr 문제 풀이 Math.abs()를 사용하여 좌표평면 안에 값을 체크한다. x좌표, y좌표를 각각 계산한다. 한 번 지나간 길을 list에 저장한다. 이번 문제는 어떻게 풀어야 할까 생각을 오래 했었다. 머릿속에서 생각을 해보았을 때 조건문을 너무 많이 사용해야 할 것 같아서 계속 고민을 했던 것이었는데 다른 방법이 생각나지 않아 결국 그냥 풀었다. 나중에 시간이 여유로울 때 다시 한번 고민해보고 싶어서 풀고 난 후 에도 다른 사람의 풀이는 보지 않았다. 나중에.. 2021. 8. 9.
[Programmers/Lv2] 땅따먹기 - Java 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 땅따먹기 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12913 코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr 문제 풀이 public static int solution(int[][] land) { int answer = 0; int k = land.length; for(int i = 0; i < k-1; i++) { land[i+1][0] += max(land[i][.. 2021. 8. 6.
네이버 웹툰 2차 과제테스트 2021.07.10인 오늘, 네이버 웹툰 2차 코딩 테스트를 보았다. 내 블로그를 보면 알 수 있듯이 알고리즘 문제를 푸는 코딩 테스트는 연습도 많이 했었고 어떤 식으로 나오는지 대략적인 유형들을 알고 있었다. 하지만 과제 테스트는 한 번도 연습해 본 적 없었고 이런 게 있단 것도 몰랐다. 내가 비슷하게나마 해본 것은 프로젝트들을 만들던 경험뿐이었다. 스프링 프레임워크를 사용하였고 database를 거쳐 api를 내려주는 일들은 많이 해봤었지만 코딩 시험도 아닌 과제 테스트를 구글 검색을 아예 하지 않고 할 줄은 몰랐다. 당연히 내가 했던 코드들도 볼 수 없었다. 이번 시험으로 느낀 점은, 여태까지 프로젝트를 했던 것은 정말 겉핥기였구나 싶었다. 나름 잘한다 믿었던 나의 코딩 실력이 하찮음을 깨달았다. .. 2021. 7. 10.
[프로그래머스(programmers)] 네이버 웹툰 1차 코딩테스트 합격 후기 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 네이버 웹툰 코딩테스트 21년 7월 4일, 프로그래머스에서 네이버 웹툰 1차 코딩테스트가 진행됐으며, 오늘 7월 7일에는 1차 코딩테스트의 합격자 발표가 있었다. 떨리는 마음으로 메일 확인을 해보니, 다행히도 합격이었다. 아직 알고리즘 공부를 다 하지도 못했고 채용과 관련된 시험접수가 처음인지라 별다른 기대를 하지 않았었는데, 합격이라는 소식이 놀랍기도 하고 기뻤다. 코딩테스트 해당 코딩테스틑 총 2시간 동안 3문제가 출제되었다. 문제 유형은 아래와 같다. 1. 조합 2. 최적화 문제 - 동적계획법(Dynamic Programming), 탐욕 알고리즘 (Greedy Algorithm) 3. 문자열 탐색 나는 약 40분 정도의 시간을 소요하여.. 2021. 7. 7.
[Programmers/Lv2] 숫자의 표현 - Java 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 숫자의 표현 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12924 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 문제 풀이 public static int solution(int n) { int answer = 0; for(int i = 1; i 2021. 7. 5.
[Programmers/Summer,Winter Coding 2018] 스킬트리 - Java 알고리즘 문제 풀이 / 프로그래머스 (programmers) - 스킬트리 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/49993 코딩테스트 연습 - 스킬트리 programmers.co.kr 문제 풀이 Queue를 사용하여 skill 순서를 판별한다. 한 단어 끝날 때마다 skill_q를 초기화해준다. 스킬 순서대로 푸는 것이 이 문제의 핵심이다. 제목에서 나왔듯이 트리 알고리즘이란 것을 사용하면 훨씬 더 효율적이고 쉽게 풀 수 있을 것이다. 하지만 나는 아직 트리 알고리즘을 공부해본 적 없어서 그냥 내 지식대로 풀었다. 다음에 시간 날 때 트리 알고리즘을 공부해야겠다고 다짐하게 된 계기다. skill_trees는 무조건 순서대로 해야 하므로 Que.. 2021. 7. 3.