본문 바로가기

프로그래머스

(55)
[ 프로그래머스 ] 프린터 / 첫 번째 제출 / from collections import deque def solution(priorities, location): answer = 0 l = len(priorities) for i in range(l): priorities[i] = [priorities[i], i] q = deque(priorities) renew = [] while q: check = q.popleft() for i in range(len(q)): if check[0] < q[i][0]: q.append(check) break if l != len(q): renew.append(check) l = len(q) for i in range(len(renew)): if renew[i][1] == location: a..
[ 프로그래머스 ] 기능개발 / 제출 1 / from collections import deque import math def solution(progresses, speeds): answer = [] remain = deque(list(map(lambda x:100-x,progresses))) speed = deque(speeds) date = 0 keep = 0 while remain: date += math.ceil(remain.popleft() / speed.popleft()) keep += 1 while remain: if (remain[0]-date*speed[0]) results = [] 현재 진도율 93%, 증가 진도율 1% => 총 7일 소요 => 신규 추가 => results = [[7]] 현재 진도율 30%, 증..
[ 프로그래머스 ] 위장 [ 1차 제출 ] def solution(clothes): answer = 0 items = {} for cloth in clothes: if cloth[1] in items: items[cloth[1]] += 1 else: items[cloth[1]] = 1 values = list(items.values()) for i in range(len(values)): answer += values[i] for j in range(len(values)-i-1): mul = values[i] for k in range(i+1, len(values)): mul *= values[k] answer += mul return answer 채점 결과 정확성: 28.6 합계: 28.6 / 100.0 제시한 테스트 케이스 ..
[프로그래머스] 전화번호 목록 / 1 번째 제출 / def solution(phone_book): answer = True phone_book.sort(key = lambda x : len(x)) for i in range(len(phone_book)): pre_item = phone_book[i] for j in range(i+1,len(phone_book)): if pre_item == phone_book[j][:len(pre_item)]: return False return answer 정확성: 83.3 (테스트 20 / 20) 효율성: 8.3 (테스트 2 / 4) : 사유는 시간초과 합계: 91.7 / 100.0 시간초과가 나올 것을 어느정도 예상하고 우선 정확성 테스트를 위해 한 번 제출해봤습니다. 역시나 시간 초과가 뜨고 ..
[프로그래머스] 완주하지 못한 선수 / 제출 1회 차 / 정확성 100% 효율성 0% : 시간 초과 이유 추측 : participant 범위가 1