본문 바로가기

프로그래머스31

[코딩테스트] 프로그래머스 - 구명 보트 (Lv.2) in 파이썬 Python 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 한다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있다. 사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit이 주어짐. 구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 할 때, 필요한 구명보트 갯수는? 예시: 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없다. 따라서 (1,3), (2), (4) 구성으로 보트를 타 총 세 개의 보트가 필요! programmers.co.kr/learn/c.. 2021. 2. 16.
[코딩테스트] 프로그래머스 - 삼각달팽이 (Lv.2) in Python 밑변의 길이와 높이가 n인 삼각형에서 맨 위 꼭짓점부터 반시계 방향으로 달팽이 채우기를 진행 첫 행부터 마지막 행까지 모두 순서대로 합친 새로운 배열을 return. programmers.co.kr/learn/courses/30/lessons/68645 풀이 - 수학적 공식이 있나 잠깐 생각했지만 그걸 알아내는 시간이 더 걸릴 것 같아서 (후에 검색해보니 없댄다!), 삼각형 모양 배열을 먼저 초기화해주고, 실제 달팽이 모양으로 숫자를 채워준 후, 배열을 flatten하여 리턴하는 방식으로 풀었다. - 달팽이 모양으로 숫자를 채우는 알고리즘을 짜는데 쓸데없이 고민을 많이 했지만 ㅠ 결국 풀게된 방법은 쉬웠다! ~> 어차피 채울 때는 한 방향으로, 일정 횟수만큼 채움 (아래로는 n번, 오른쪽으로는 n-1번,.. 2021. 2. 15.
[코딩테스트] 프로그래머스 - 다리를 지나는 트럭 (Lv.2) in Python 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순서대로 건너며, (순서 및 각 트럭의 무게는 매개변수 중 하나인 truck_weights배열에 주어집니다) 트럭은 1초에 1만큼 움직이고, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다. 모든 트럭이 다리를 건너려면 몇 초가 걸리는가? programmers.co.kr/learn/courses/30/lessons/42583 풀이 - 조금은 무식한(?) 방법으로 풀기로 결정했다. - 제한 조건에 bridge_length, truck_weights모두 10,000이하라고 주어져서, - 최악의 경우 - 주어진 시간에 트럭 한 대씩밖에 못 건너는 경우 - 에도, 필요한 시간은 bridge_length * truck_weigh.. 2021. 2. 15.
[코딩테스트] 프로그래머스 - 기능 개발 (Lv.2) in Python 파이썬 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return. programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 풀이 - 일단 각 기능별로 완성되기 위해 걸리는 시간은 # progress + speed * days >= 100 days = math.ceil((100 - progre.. 2021. 2. 14.