분류 전체보기
가상 메모리
가상 메모리 가상 메모리(Virtual Memory)는 메모리 관리 기법의 하나로, 메모리를 추상화하여 사용자에게 무한한 크기의 메모리가 존재하는 것처럼 느끼게 만드는 것이다. 프로그램의 일부분이 메모리에 올라오도록 함으로써 보다 많은 개수의 프로세스를 메모리에 수용함과 동시에 아무리 큰 프로그램도 실행할 수 있다. 도메인 네임만 기억하고 있으면 DNS가 이 주소를 IP 주소로 알아서 변환해주는 것처럼, 메모리관리장치(MMU)가 가상 메모리 주소를 실제 메모리 주소로 매핑해주기 때문에 우리는 실제 주소를 의식할 필요없이 프로그램을 구축할 수 있다. 장점 프로그램의 전체가 메모리에 올라가지 않아도 실행 가능하다. 프로그램 입장에서는 물리적 메모리의 제약을 고려할 필요가 없다. 동시에 여러 프로그램을 실행하..
메모리 관리 기법
메모리 관리 배경 다중 프로그래밍 시스템에서는 여러 개의 프로세스가 실행되고, 각 프로세스는 독립적인 메모리를 할당받아야 한다. 따라서 어떤 프로세스에게 어떤 식으로, 얼마나 메모리를 할당할 것인지 주기억장치를 동적 분할하는 메모리 관리 작업이 필요하다. 메모리 관리 기법 1️⃣ 교체 기법 1. Swapping 2️⃣ 할당 기법 1. 연속 할당 기법 1) 고정분할 방식(단편화) 2) 가변분할 방식 2. 불연속 할당 기법 1) 페이징(Paging) 2) 세그멘테이션(Segmentation) 3️⃣ 배치 기법 1. 최초 적합(First-Fit) 2. 최적 적합(Best-Fit) 3. 최악 적합(Worst-Fit) 교체 기법 - Swapping 스와핑(Swapping)은 현재 사용되지 않는 메모리 내용을 디스..
[16928] 뱀과 사다리 게임(C++)
문제 뱀과 사다리 게임을 즐겨 하는 큐브러버는 어느 날 궁금한 점이 생겼다. 주사위를 조작해 내가 원하는 수가 나오게 만들 수 있다면, 최소 몇 번만에 도착점에 도착할 수 있을까? 게임은 정육면체 주사위를 사용하며, 주사위의 각 면에는 1부터 6까지 수가 하나씩 적혀있다. 게임은 크기가 10×10이고, 총 100개의 칸으로 나누어져 있는 보드판에서 진행된다. 보드판에는 1부터 100까지 수가 하나씩 순서대로 적혀져 있다. 플레이어는 주사위를 굴려 나온 수만큼 이동해야 한다. 예를 들어, 플레이어가 i번 칸에 있고, 주사위를 굴려 나온 수가 4라면, i+4번 칸으로 이동해야 한다. 만약 주사위를 굴린 결과가 100번 칸을 넘어간다면 이동할 수 없다. 도착한 칸이 사다리면, 사다리를 타고 위로 올라간다. 뱀..
[1967] 트리의 지름(C++)
문제 바로가기 트리(tree)는 사이클이 없는 무방향 그래프이다. 트리에서는 어떤 두 노드를 선택해도 둘 사이에 경로가 항상 하나만 존재하게 된다. 트리에서 어떤 두 노드를 선택해서 양쪽으로 쫙 당길 때, 가장 길게 늘어나는 경우가 있을 것이다. 이럴 때 트리의 모든 노드들은 이 두 노드를 지름의 끝 점으로 하는 원 안에 들어가게 된다. 이런 두 노드 사이의 경로의 길이를 트리의 지름이라고 한다. 정확히 정의하자면 트리에 존재하는 모든 경로들 중에서 가장 긴 것의 길이를 말한다. 입력으로 루트가 있는 트리를 가중치가 있는 간선들로 줄 때, 트리의 지름을 구해서 출력하는 프로그램을 작성하시오. 아래와 같은 트리가 주어진다면 트리의 지름은 45가 된다. 트리의 노드는 1부터 n까지 번호가 매겨져 있다. 입력..
[NH투자증권] 2022년 하반기 신입사원 채용 필기시험 후기
NH투자증권 필기시험을 보러 잠실중에 다녀왔다. 오전 8시 50분까지 입실을 완료해야 했고, 나는 8시쯤 집에서 출발했다. 참고로 잠실중이 아파트 단지 내에 있어서 차로는 아파트 입구까지만 갈 수 있고 따로 주차는 불가능하다. 바로 옆에 잠실고인가 잠실초에서는 국민은행 필기시험도 있었다. 그래서 그런가 생각보다 결시자가 꽤 있었다. 한 고사실 당 20명 정도이고 나는 9 고사실이었는데 우리 반에만 6명(?) 정도가 결시한 것 같다. 농협은행 필기 후기는 많은데 엔투 후기는 너무 없어서 필기시험 준비하는데 너무 막막했었다... 그래서 쫌 자세하게 써보려고 한다. 문제집 시중에 나온 책도 농협은행 대비하는게 대부분이고 엔투는 따로 없어서 은행 책으로 준비해도 되는 건가 아님 그냥 집에 있던 NCS 문제집을 ..
[NH투자증권] 2022년 하반기 범농협 신입사원 채용 코테 후기
기본 정보 - 10/29(토) 오전 10시 - 테스트 구성 : 알고리즘 3문항 + SQL 1문항 - 알고리즘 응시가능 언어 : C, C++, C#, Java, JavaScript, Kotlin, Python3, Ruby, Swift, Scala, Go - SQL 사용 플랫폼 : MySQL, Oracle - A4용지 1장 & 펜 사용 가능 - 중도 퇴실 가능시간 : 11시 이후 문제 1번: 브루트포스 맵 탐색 범위가 크지 않아서 일단 브루트포스로 돌렸는데 뭔가 시간초과가 날 것 같아서 슬라이딩 윈도우로 바꿔보려다가 시간이 없어서 그냥 제출... 2번: dfs/bfs 사실 난 정렬 & 브루트포스로 풀었다. 2번 역시 탐색 범위가 크지 않아서 그냥 냅다 돌렸는데 그래프 탐색으로 접근해도 되는 것 같다. 3번:..
[12980] 점프와 순간 이동(C++)
문제 설명 OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨어져 있는 장소로 가려고 합니다. 단, 건전지 사용량을 줄이기 위해 점프로 이동하는 것은 최소로 하려고 합니다. 아이언 슈트 구매자가 이동하려는 거리 N이 주어졌을 때, 사용해야 하는 건전지 사용량의 최솟값을 return..
[12973] 짝지어 제거하기(C++)
문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 baabaa → bbaa → aa → 의 순서로 문자열을 모두 제거할 수 있으므로 1을 반환합니다. 제한사항 문자열의 길이 : 1,000,000이하의 자연수 문자열은 모두 소문자로 이루어져 있습니다. 해결 ..