deque 3

[programmers] 1차 캐시

https://programmers.co.kr/learn/courses/30/lessons/17680 문제의 조건에 따라 Least Recently Used 순서대로 없앤다. 즉, 가장 처음에 들어온 도시인 Seoul을 제거하고 newyork를 맨 마지막에 삽입한다. -> 이렇게 해서 가장 최근에 저장한 도시는 new york이 되고, 저장한지 가장 오래된 도시는 pangyo가 된다. -> newyork은 miss cache이므로 실행시간 +5 되어 총 20만큼 실행됐다. 3. 그 다음 도시인 'LA'를 cache에 삽입할 때 역시 cache공간이 부족하므로 가장 오래된 pangyo를 빼고 맨 마지막에 LA를 삽입해야한다. 위와 같은 과정을 반복하여 실행시간을 구하는 것이 문제의 목표이다. from co..

Python/CoTe 2022.03.27

[programmers] 구명보트

https://programmers.co.kr/learn/courses/30/lessons/42885# 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr 접근법 주의 사항: 정렬한 다음에 최솟값부터 더하는 방식으로 하면 항상 최소 구명보트 이용을 만족하지 못한다. 반례 [80,90,20,30,40,50,60], 100 이 주어졌을 때, 최솟값을 더하는 방식으로 하면 20,30,40/50/60/80/90 -> 총 5개의 구명 보트를 써야 한다. 그러나 실제로 최소 구명 보트는 20,80..

Python/CoTe 2022.03.20

[programmers] 짝지어 제거하기

https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 어려운 문제는 아니지만 효율성이 중요한 문제이다. 문자열의 길이 : 1,000,000이하의 자연수 첫 번째 코드 def solution(s): while True: for i in range(len(s)-1): if s[i] != s[i+1]: continue else: s.pop(i) s.pop(i) break else: break return 1..

Python/CoTe 2022.03.12
728x90