본문 바로가기

Python5

[PCCP 준비] 실습 문제 06 (구명보트)(Greedy) 그리디가 진짜 어려운 것 같다. 감을 빨리 잡아야지 쉽게 푸는... 문제 설명 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다. 구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다. 사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때, 모든 사람을 구출하기 위해 필요한 구명보트 개.. 2024. 1. 8.
[PCCP 교육] 실습 문제 23 (야근 지수)(Heap) 이건 문제가 이해가 되지 않아서 약간 애먹었다. 문제 설명 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성해주세요. 제한 조건 works는 길이 1 이상, 20,000 이하인 배열입니다. works의 원소는 50000 이하인 자연수입니다. n은 1,000,000 이하인 자연수입니다. 풀이 우선순위큐를 이용해야 된다고 생각했다. 야근 지수.. 2024. 1. 8.
[PCCP 교육] 실습 문제 24 (피보나치 수) 이건 수업시간에 거의 맨날 나오는 단골 문제다. 나는 거의 이 문제를 DP로 푼다. 제일 직관적이고 예쁘기 때문. 문제 설명 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어) F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = 2 + 3 = 5 와 같이 이어집니다. 2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요. 제한 조건 n은 2 이상 100,000 이하인 자연수.. 2024. 1. 8.
[PCCP 교육] 실습문제 03 (튜플)(Sorting) 문제 설명 특정 튜플을 표현하는 집합이 담긴 문자열 s가 매개변수로 주어질 때, s가 표현하는 튜플을 배열에 담아 return 하도록 solution 함수를 완성해주세요. {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}} {{2, 1, 3, 4}, {2}, {2, 1, 3}, {2, 1}} {{1, 2, 3}, {2, 1}, {1, 2, 4, 3}, {2}} 는 모두 같은 튜플 (2, 1, 3, 4)를 나타냅니다. 제한 조건 s의 길이는 5 이상 1,000,000 이하입니다. s는 숫자와 '{', '}', ',' 로만 이루어져 있습니다. 숫자가 0으로 시작하는 경우는 없습니다. s는 항상 중복되는 원소가 없는 튜플을 올바르게 표현하고 있습니다. s가 표현하는 튜플의 원소는 1 이상 1.. 2024. 1. 8.
[Python] venv 활성화가 안 될때.. venv\Scripts\activate.bat 을 입력을 해도 아무런 파이참에 아무런 변화가 없었다. 분명 (venv)로 떠야 하는데...? 옆에 [Command Prompt]를 추가해보니까 venv로 활성화가 돼 있었다. Windows PowerShell 이어서 그런 듯 하다. 휴... 2023. 8. 15.