분류 전체보기282 [고득점 Kit(탐욕법)] 구명보트 (Python) 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 풀이 people을 정렬한 상태로 만들어준다. 그 후 left와 right를 두어 현재 가장 가벼운 사람과 무거운 사람을 최대한 같이 태울 수 있도록 해주었다. 먼저 보트에 가장 무거운 사람을 태웠을 때 limit보다 작다면 무거운 사람을 태우고 right 인덱스를 -1 해준다. 그 후 가장 가벼운 사람을 태웠을 때 limit보다 작다면 가벼운 사람을 태우고 left 인덱스를 +1 해준다. 이 때 flag를 사용했는데 만약 flag가 .. 2022. 1. 1. [고득점 Kit(탐욕법)] 큰 수 만들기 (Python) 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 풀이 입력으로 주어진 number를 앞에서부터 탐색하면서 answer에 담아준다. 이때 현재 number의 숫자랑 answer에 담겨 있는 숫자를 하나씩 비교하여(역순으로) 현재 숫자가 answer에 담겨 있는 숫자보다 클 경우 answer의 숫자를 한자리씩 지워나간다. 예제의 "4177252841"로 살펴보면 다음과 같다. 처음 숫자인 4를 answer에 담는다. 이제 1과 answer를 한 자리씩 비교하는데 4보다 작으므로 1을 그래도 담는다. answer에는 41이 담겨져 있다. 7과 answer를 역순으로 한 자리씩 비교한다. 7이 1보다 크므로 answer에서 1을 지운다. k는 1 감소 다음으로 7과 4를 비교하는데 7이 더 크.. 2022. 1. 1. [OS] 프로세스와 스레드 프로세스와 스레드의 차이 [프로그램 - > 프로세스] 프로그램 : 파일이 저장 장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태를 말한다. 프로그램을 실행하는 순간 해당 파일은 컴퓨터 메모리에 올라가게 되고, 이 상태를 동적인 상태라고 하며 이 상태의 프로그램을 프로세스라고 한다. [프로세스 → 스레드] 스레드 : 프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위 스레드는 프로세스와 다르게 스레드 간 메모리를 공유하며 작동된다. 스레드끼리 프로세스의 자원을 공유하면서 프로세스 실행 흐름의 일부가 되는 것이다. 즉, 스레드는 프로세스의 코드에 정의된 절차에 따라 실행되는 특정한 수행 경로다. [프로세스와 스레드의 작동 방식] 프로세스가 메모리에 올라갈 때 운영체제로부.. 2021. 12. 29. [OS] 07. 메모리 관리 1. 주소 바인딩 프로그램이 메모리에 적재되면 그 프로세스를 위한 독자적인 주소 공간이 생성된다. 이를 논리적 주소(logical address) 혹은 가상 주소(virtual address)라고 부른다. 논리적 주소는 각 프로세스마다 독립적으로 할당되며 0번지부터 시작된다. 반면 물리적 주소(physical address)는 물리적 메모리에 실제로 올라가는 위치를 말한다. 보통 물리적 메모리의 낮은 주소 영역에는 운영체제가 올라가고, 높은 주소 영역에는 사용자 프로세스들이 올라간다. 프로세스가 실행되기 위해서는 해당 프로그램이 물리적 메모리에 올라가 있어야 한다. 또한 CPU가 기계어 명령 수행을 위해 논리적 주소를 통해 메모리 참조를 하게 되면 해당 논리적 주소가 물리적 메모리의 어느 위치에 매핑되는.. 2021. 12. 27. [OS] 06. CPU 스케줄링 CPU : 프로그램의 기계어 명령을 실제로 수행하는 컴퓨터 내의 중앙처리장치 CPU는 프로그램이 시작되어 메모리에 올라가면 프로그램 카운터가 가리키는 주소의 기계어 명령을 하나씩 수행한다. 기계어 명령은 크게 3가지로 나뉜다. ①CPU 내에서 수행되는 명령 CPU 내에서만 수행되므로 명령의 수행속도가 매우 빠르다. CPU 내의 레지스터에 있는 두 값을 더해 레지스터에 저장하는 Add 명령이 이에 해당. 사용자 프로그램이 직접 수행할 수 있는 일반명령에 해당한다. ②메모리 접근을 필요로 하는 명령 CPU 내에서 수행되는 명령보다는 시간이 오래 소요되지만 비교적 짧은 시간에 수행할 수 있는 명령에 해당된다. 메모리에 있는 데이터를 CPU로 읽어들이는 Load명령, CPU에서 계산된 결괏값을 메모리에 저장하는.. 2021. 12. 26. [고득점 Kit (탐욕법)] 조이스틱 (Swift, Python) 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr 풀이 먼저 각 알파벳 별로 A에서 최소 몇 번의 조이스틱 조작으로 해당 알파벳에 도달할 수 있는지를 배열로 만들어줬다. N은 위쪽 아래쪽 모두 13번을 조작해야하고 A에서 N까지는 위쪽으로, N 이후부터는 아래쪽으로 움직이면 최소한의 조작 횟수를 구할 수 있다. 그렇게 입력으로 주어진 name의 각각의 알파벳을 몇 번 움직여야 하는지 구한다. A가 아닐 경우에는 조이스틱 조작이 필요한 인덱스 배열(changeIdx)에 담아둔다. 그 후 cha.. 2021. 12. 24. 이전 1 ··· 25 26 27 28 29 30 31 ··· 47 다음