분류 전체보기

Algorithm

[Python] 프로그래머스 - 광물 캐기 (그리드 알고리즘)

def solution(picks, minerals): answer = 0 m_dict = { "diamond": 0, "iron": 0, "stone": 0 } dict = {0: (1, 1, 1), 1: (5, 1, 1), 2: (25, 5, 1)} array = [] length = min(sum(picks) * 5, len(minerals)) ## 곡갱이보다 광석이 많은 경우 대비. (테스트 케이스 8번) for i in range(length): m_dict[minerals[i]] += 1 if (i + 1) % 5 == 0 or i == len(minerals) - 1: array.append([m_dict["diamond"], m_dict["iron"], m_dict["stone"]]) m_..

Algorithm

[Python] 프로그래머스 - 연속된 부분 수열의 합

def solution(seq, k): start, end, total = 0, 0, seq[0] seq += [0] first, second = 1000000, 2000000 while end < len(seq) - 1: if total

Algorithm

[Python] 프로그래머스 - [3차] 압축 - O(n) 풀이

https://school.programmers.co.kr/learn/courses/30/lessons/17684

Algorithm

[프로그래머스] 주식가격 O(n)시간복잡도 - 파이썬

Stack 안에 (가격, 떨어지지 않은 시간) 을 리스트로 저장합니다. -1 인덱스의 떨어지지 않는 시간은 0이기 때문에 stack의 초기값으로 저장합니다. => [[prices[-1], 0]] -2 인덱스부터 시작해서 price를 하나씩 꺼냅니다. => for i in range(len(prices) -2, -1, -1 ) 만약 stack에 있는 값의 가격이 현재 가격보다 크거나 작다면 stack에서 계속 pop합니다. => while stack and price popCount += count 만약 나보다 크거나 같은 요소가 stack 안에 있다면 while 문이 나보다 작은 요소를 만나거나 stack 비어있을 때까지 실행될 것이고 1 < popCount가 됩니다. 그렇지 않다면 popCount은 기..

배고픈개발자
'분류 전체보기' 카테고리의 글 목록