WHAT WE TAGS 코드잇 LIST
실습과제 강남역에 엄청난 폭우가 쏟아진다고 가정하자. 정말 재난 영화에서나 나올 법한 양의 비가 내려서, 고층 건물이 비에 잠길 정도이다. 그렇게 되었을 때, 건물과 건물 사이에 얼마큼의 빗물이 담길 수 있는지 알고 싶다. 그것을 계산해 주는 함수 trapping_rain을 작성해 보려고 한다. 함수 trapping_rain은 건물 높이 정보를 보관하는 리스트 buildings를
실습과제 [1, 2, 5, 6, 7, 9, 11] 안에 합이 15가 되는 두 요소의 조합이 있는지 확인하고 싶다. 두 요소 6과 9의 합이 15가 된다. 이 조합이 있는지 없는지를 알고 싶은 것이다. 함수 설명 함수 sum_in_list은 정수 search_sum와 정렬된 정수 리스트 sorted_list를 받아서 sorted_list안의 두 요소의 합이 search_sum가 되는
실습과제 (N + 1) 의 크기인 리스트에, 1부터 N 까지의 임의의 자연수가 요소로 할당되어 있다. 그렇다면 어떤 수는 꼭 한 번은 반복된다. 예를 들어 [1, 3, 4, 2, 5, 4]와 같은 리스트 있을 수도 있고, [1, 1, 1, 6, 2, 2, 3]과 같은 리스트가 있을 수도 있다. (몇 개의
실습과제 영훈이는 출근할 때 계단을 통해 사무실로 간다. 급할 때는 두 계단씩 올라가고 여유 있을 때는 한 계단씩 올라간다. 결국 계단을 오를 수 있는 모든 방법으로 계단을 올라갔다. 이제 다르게 계단을 올라갈 수는 없을까 고민하던 영훈이는 특이한 방법으로 계단을 오르려고 한다. 가령 계단을 한 번에 1, 2, 4
실습과제 영훈이는 출근할 때 계단을 통해 사무실로 간다. 급할 때는 두 계단씩 올라가고 여유 있을 때는 한 계단씩 올라 간다. 어느 날 문득, 호기심이 생겼다. 한 계단 또는 두 계단씩 올라가서 끝까지 올라가는 방법은 총 몇 가지가 있을까? 계단 4개를 올라간다고 가정하면, 이런 방법들이 있다. 1, 1, 1, 1
실습과제 태호는 주식 분석이 취미다. 요즘 제일 핫한 종목은 삼송전자인데, 삼송전자의 주식을 딱 한 번 사고 팔았다면 최대 얼마의 수익이 가능했을지 궁금하다. 그것을 계산해 주는 O(n) 함수 max_profit을 작성하라. max_profit은 파라미터로 일별 주식 가격이 들어 있는 리스트 stock_prices를 받고 최대 수익을 리턴한다. 주식은 딱 한 번만
실습과제 이미 sublist_max 함수를 각각 Brute Force과 Divide and Conquer 방식으로 작성했었다. Brute Force로 풀었을 때는 시간 복잡도가 O(n^2), Divide and Conquer 를 사용했을 때는 O(nlgn) 였다. 이번 과제에서는 시간 복잡도를 O(n) 로 한 번 더 단축하라! 나의 답 def sublist_max(profits): # 코드를 작성하세요. answer
실습과제 저번에 sublist_max 함수를 Brute Force 방식으로 작성했다. 이번에는 같은 문제를 Divide and Conquer 방식으로 풀어볼 것이다. 시간 복잡도는 O(n lg n) 이 되어야 한다. 이번 sublist_max 함수는 3개의 파라미터를 받는다. profits: 며칠 동안의 수익이 담겨 있는 리스트 start: 살펴볼 구간의 시작 인덱스 end: 살펴볼 구간의 끝
실습과제 (N + 1) 의 크기인 리스트에, 1부터 N까지의 임의의 자연수가 요소로 할당되어 있다. 그렇다면 어떤 수는 꼭 한 번은 반복된다. 예를 들어 [1, 3, 4, 2, 5, 4]와 같은 리스트 있을 수도 있고, [1, 1, 1, 6, 2, 2, 3] 과 같은 리스트가 있을 수도 있다. (몇 개의
실습과제 신입 사원 장그래는 마부장님을 따라 등산을 가게 되었다. 탈수를 방지하기 위해서 1km당 1L의 물을 반드시 마셔야 한다. 다행히 등산길 곳곳에는 물통을 채울 수 있는 약수터가 마련되어 있다. 다만 매번 줄서 기다려야 한다는 번거로움이 있기 때문에, 시간을 아끼기 위해서는 최대한 적은 약수터를 들르고 싶다. 함수 select_stops는 파라미터로 약수터