본문 바로가기
  • 소소한 개발자 이야기

Algorithm Study/SW역량테스트13

LRU 캐시 알고리즘 구현하기 LRU(Least Recently Used) 알고리즘은 가장 최근에 사용되지 않은 페이지를 교체하는 알고리즘입니다. 아래는 C++로 구현한 LRU 알고리즘 예시입니다. #include #include #include using namespace std; class LRUCache { private: int capacity; list cacheList; unordered_map cacheMap; public: LRUCache(int capacity) { this->capacity = capacity; } int get(int key) { if (cacheMap.find(key) == cacheMap.end()) { return -1; } auto it = cacheMap[key]; cacheList.spl.. 2023. 2. 22.
[LeetCode] Container With Most Water leetcode.com/problems/container-with-most-water/ Container With Most Water - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 아주아주 오랜만에 알고리즘 문제를 풀어 봤는데 재밌다...알타쿠의 길... 오랜만에 푸는 만큼 간단한 문제로 손풀기! 문제는 저작권 때문에 링크에서 참고 확인해주시기 바랍니다 ㅠ 간락하게 문제를 설명하자면 아래와 같습니다. - 음이아닌 정수가 배열의 형태로 주어지고 이것은 각각 좌.. 2021. 2. 27.
퀵 정렬(Quick Sort) 구현하기 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 #include int getLeft(int arr[], int start, int end, int pivot, int result[]){ // arr의 start부터 end까지 숫자들 중에서 // pivot보다 작거나 같은 값을 result에 채우는 함수 // 또한.. 2020. 8. 17.
큰 자릿수 뺄셈 (고급) 안녕하세요, 오늘은 부산에 있는 회사의 코딩 테스트에서 출제 된 문제를 리뷰해 볼까합니다. 앞전에 포스팅한 "큰 자릿수 뺄셈" 문제와 유사한 문제였는데요, 정확히 말하면 "큰 자릿수 뺄셈"의 고급 버전이라고 볼 수 있습니다. STL과 string.h의 사용이 불가하고, 앞전의 문제는 정수형만 계산 했는데, 이번 문제는 실수형 문제를 계산하는 문제입니다. 문제 두 숫자가 주어질 때 그 들의 뺄셈을 계산하는 프로그램을 작성하시오. 각 수는 1 이상 10의 100승 미만의 범위를 가진다. 제한사항 (1) STL과 string.h 헤더는 사용할 수 없다. (2) 잘못된 입력이 들어 올 시 "error"를 출력한다. (3) 소수부분이 모두 0일 경우 소수 부분은 출력하지 않는다. 입력 첫 번째 줄과 두 번째 줄에.. 2020. 7. 3.
압축된 문자열 풀기! 안녕하세요! 오늘은 압축된 문자열을 풀어서 그 값을 출력하는 프로그램을 작성하는 문제를 포스팅 해보겠습니다. 국내 알고리즘 저지 사이트에는 문자열 압축 문제는 많이 있는데, 압축된 문자열을 푸는 문제는 못 본것 같더라구요! 한번 쯤 풀어보면 좋은 문제인것 같습니다. 입력 3(hi) 출력 hihihi 입력 2(2(hi)2(co)x2(bo) 출력 hihicocohihicocoxbobo 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 .. 2020. 7. 2.
합병 정렬(merge sort) 합병 정렬을 구현해 보았습니다. 가끔 알고리즘 문제에서 STL을 사용하지 못하게하는 회사들이 간혹 있는데요, STL을 사용하지 못하게 한다는건 기본적으로 라이브러리를 이용한 sort() 함수를 사용하지 못한다는 뜻입니다. (그 외에 다른 구현 능력을 보는 거 일수도 있지만요....^^) 그 말은 즉, 시험 응시자에게 "너 합병정렬, 퀵 정렬, 힙정렬 이거 구현할 줄 알아?" 라고 묻는거라고 할 수 있겠죠? 물론, 정렬을 구현하는데서 끝나는 것이 아니라, 그 외에 부가적인 것을 추가로 구현해야 하겠지만 첫 번째로! 문제에서 정렬을 직접 구현하라고 했을 때, 보자모자 무릎을 탁! 치고 바로 10분안에 코딩 할 수 있는 능력이 있어야 그 다음을 해결할 수 있겠죠?? 합병 정렬의 차근차근 몇번 따라 해보면 그렇.. 2020. 6. 28.