본문 바로가기
반응형

프로그래밍/알고리즘 문제39

[프로그래머스] KAKAO 2018 코딩테스트 - 실패율 (python) 1차시도 import collections import operator def solution(N, stages): answer = [] user_stage=collections.Counter(stages) fail={} for i in range(1,N+1): if user_stage[i]==0: max_key=i else: del user_stage[i-1] fail[i]=(sum(user_stage.values())/float(user_stage[i])) stage_result=sorted(fail.items(), key=operator.itemgetter(1)) for i in range(len(stage_result)): answer.append(stage_result[i][0]) answer... 2019. 9. 2.
[프로그래머스] 해시 - 전화번호 목록 (python) 1차시도! 성공인데 사실은 틀린 코드 def solution(phone_book): answer = True phone_book.sort() phone_book_dict=dict(zip(phone_book,range(len(phone_book)))) for i in phone_book: phone_book_dict.pop(i) for j in phone_book_dict: if i in j: return False return answer 아이디어 비교 횟수를 줄이기 위해 phone_book을 정렬합니다. phone_book 리스트의 값을 key로 갖는 딕셔너리를 만듭니다. phone_book 리스트의 각 요소가 (for i in phone_book) 다른 요소값(phone_book_dict.pop(i).. 2019. 8. 28.
[프로그래머스] 해시 - 완주하지 못한 선수 (python) 1차시도 리스트로 노가다 def solution(participant, completion): answer="" for i in participant: if len(completion)==False: answer=i break for j in range(len(completion)): if i==completion[j]: flag=True completion.pop(j) break else: flag=False if flag==False: answer=i break return answer 아이디어 participant 참가자 한 명씩 completion 명단에 있는지 확인합니다. 있으면 그 다음 참가자가 확인하고, 없으면 completion 명단 끝까지 없는건지 확인합니다. 틀린이유 효율성 테스트 실패.. 2019. 8. 27.
[프로그래머스] 스택/큐 주식가격 (python) 1차 시도 def solution(prices): answer = [] cnt=0 while prices: sec=prices.pop(0) cnt=0 for i in range(0,len(prices)): if sec 2019. 8. 26.
[프로그래머스] 스택/큐 기능개발 (python) 1차시도 import math def solution(progresses, speeds): answer = [] progresses_left=[] time_left=[] cnt=1 for i in progresses: progresses_left.append(100-i) for i,j in zip(progresses_left,speeds): time_left.append(math.ceil(i/j)) while time_left: tmp=time_left.pop(0) if len(time_left)==0: answer.append(cnt) break elif tmp >= time_left[0]: time_left.pop(0) cnt += 1 else : break answer.append(cnt) cnt=.. 2019. 8. 25.
[프로그래머스] 스택/큐 다리를 지나가는 트럭 (python) 1차 시도 def solution(bridge_length, weight, truck_weights): answer = 0 print(truck_weights) # 줄줄이 도착하는 경우 (모든 트럭 무게 weight: answer += (bridge_length -1) return answer 아이디어 최소시간(min_time)에서 지연 시간을 더해서 결과값을 구하자는 생각이었습니다. (괜찮은 아이디어일 것 같은데) 최소시간은 트럭이 다리에 줄줄이 들어올 수 있어서 줄줄이 다리를 빠져나가는 경우입니다. 모든 트럭 무게의 합이 weigth보다 작거나 같으면 가능한 경우이죠. 지연 시간은 truck_weights에서 2개씩 트럭 무게를 더했을 때 weight를 넘는 경우에 발생을 한다고 생각했었습니다. 놓친.. 2019. 8. 22.
반응형