Algorithm/프로그래머스

    [프로그래머스] 42583. 다리를 지나는 트럭

    Programmers - 42583. 다리를 지나는 트럭 접근 트럭의 무게와, 다리에 올라가 있던 시간을 저장하는 길이가 2인 배열을 저장하는 deque를 생성. 하나씩 다리에 올려도 되는지 검사하고, 올리면서 무한반복 from collections import deque def solution(bridge_length, weight, truck_weights): # [0] = truck's weight / [1] = the seconds when the truck on the bridge. truck_list = deque([[truck, 0] for truck in truck_weights]) truck_on_bridge = deque([]) seconds = 0 while truck_list..

    [프로그래머스] 42579. 베스트앨범

    Programmers - 42579. 베스트앨범 접근 우선, set으로 장르의 종류를 파악(중복 제거) dictionary를 이용해 장르별 플레이 횟수, 장르별 index와 index에 따른 play 횟수를 sub-dictionary로 저장. {'classic': 1450, 'pop': 3100} {'classic': {0: 500, 2: 150, 3: 800}, 'pop': {1: 600, 4: 2500}} 같은 느낌으로. 그리고 총 play수가 가장 많은 장르부터, 곡의 play수가 가장 많은 2개를 뽑아 차례대로 저장시킴. ** 단, play수가 같은 곡은 index가 빠른 순서대로 저장.

    [프로그래머스] 42577. 전화번호 목록

    Programmers - 42577. 전화번호 목록 접근1 해시? 딕셔너리로 접근? set으로 접근? 고민 많이 했음. 2중 for문으로 처리하면 쉽겠지만, 당연히 시간초과 뜰 거고... 모든 phone_num의 원소마다 "1234"라면 1 12 123 1234 이렇게 모든 경우의 수를 따져서 그 숫자가 (자신 제외) phone_num에 있는지 조사 -> 성립. 대신, 이제 찾을 때 set에 넣어서 하면 될 듯? def solution(phone_book): set_book = set(phone_book) for phone in phone_book: number = "" for num in phone: number += num if number in set_book and number != phone: ..