2023.01.15 코딩 테스트 공부 기록 입니다.

🤑풀이
from collections import deque
def solution(bridge_length, weight, truck_weights):
truck_queue = deque(truck_weights)
bridge_queue = deque([0 for i in range(bridge_length)])
bridge_remain_weight = weight
sum_outweight = sum(truck_weights)
time = 0
while sum_outweight > 0 :
time += 1
# 다리 -> 나가는 차
out = bridge_queue.popleft()
sum_outweight -= out
bridge_remain_weight += out
# 대기하는 차 -> 다리
# 들어갈 차 있는지 확인
if len(truck_queue) > 0 :
# 다리가 차를 받을 수 있는지 확인
in_bridge = truck_queue[0]
if bridge_remain_weight >= in_bridge :
bridge_remain_weight -= in_bridge
bridge_queue.append(in_bridge)
truck_queue.popleft()
else :
bridge_queue.append(0)
else :
bridge_queue.append(0)
return time
👩🏫 아이디어

🤑풀이
from collections import deque
def solution(A, B) :
A.sort()
A = deque(A)
B.sort()
score = 0
for b in B :
if b > A[0] :
A.popleft()
score += 1
return score
👩🏫 아이디어
A를 좌표상의 점으로 생각하고, B는 A보다 큰 위치에 분배하는 개념으로 접근.
결과 값은 "점수" 이기 때문에 누가 누굴 이겼는지는 중요하지 않음. 이기는 횟수만 고려.

🤑풀이
def solution(genres, plays) :
ans, hash, genre_play = [], {}, []
# genre별 정보와 전체 play 정보를 담은 hash 생성
for i in range(len(genres)) :
hash[genres[i]] = hash.get(genres[i], {'info' : [], 'sum' : 0})
hash[genres[i]]['sum'] += plays[i]
hash[genres[i]]['info'].append([i, plays[i]])
# genre, 장르별 전체 play 정보을 담은 리스트 생성
for genre in hash.keys() :
genre_play.append([hash[genre]['sum'], genre])
# 장르별 전체 play 정보를 기준으로 내립차순 정렬
genre_play.sort(key = lambda x : x[0], reverse=True)
# 장르마다, play가 높은 순서대로 정답에 입력, 개수가 1개일 때도 고려.
for _, genre in genre_play :
hash[genre]['info'].sort(key =lambda x : x[1], reverse=True)
ans.append(hash[genre]['info'][0][0])
if len(hash[genre]['info']) > 1 :
ans.append(hash[genre]['info'][1][0])
return ans
👩🏫 아이디어

🤑풀이
from collections import deque
def solution(n, stations, w) :
installed = deque(stations)
step = -w
answer = 0
while step < n-w :
step += 2*w+1
if len(installed) > 0 :
if step < installed[0] :
answer += 1
elif step == installed[0] :
installed.popleft()
else :
step = installed.popleft()
else :
answer += 1
return answer
👩🏫 아이디어