일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 12869번
- 15686번
- 1038번
- 스타트 택시
- 백준 알고리즘
- 보석 쇼핑
- 1789번
- 수식 최대화
- SW ExpertAcademy
- 감소하는 수
- 베스트엘범
- 미세먼지 안녕!
- 프로그래머스
- 16234번
- QueryDSL 기초
- 14499번
- 17144번
- 파이썬
- 빛의 경로 사이클
- 거울 설치
- 키패드 누르기
- 19238번
- 어른 상어
- 2020 카카오 인턴십
- 12865번
- python
- 9095번
- HTML 기초
- 경주로 건설
- SW Expert Academy
Archives
- Today
- Total
보물창고 블로그
SW Expert Academy 2477. [모의 SW 역량테스트] 차량 정비소 풀이 With Python 본문
알고리즘 풀이/SW Expert Academy
SW Expert Academy 2477. [모의 SW 역량테스트] 차량 정비소 풀이 With Python
홋 메 2020. 3. 25. 23:05728x90
문제를 처음 보았을 때는 상당히 막막했다. 2시간 정도 고민 후에 코드를 짜기 시작했다. 문제에 설명된 대로 그대로 구현하니 통과가 되었다. 해결한 코드는 아래와 같다. recepnum과 repairnum에 접수대 번호와 정비소 번호를 넣어서 해당 접수대 번호와 정비소 번호를 가진 고객이 있을 때 answer의 카운트를 1씩 증가하였다.
t = int(input())
for test in range(1, t + 1):
# 접수대 정비소 고객수 접수대번호 정비소 번호
n, m, k, a, b = map(int, input().split())
recept = list(map(int, input().split()))
repair = list(map(int, input().split()))
customer = list(map(int, input().split()))
new = []
answer = 0
recenum = []
repairnum = [0] * k
receptime = [-1] * n
repairtime = [-1] * m
for c in range(k):
flag = 0
for num in range(n):
if receptime[num] < customer[c]:
receptime[num] = customer[c] + recept[num] - 1
recenum.append(num)
flag = 1
new.append([receptime[num]+1, num, c])
break
if flag == 0:
idx = receptime.index(min(receptime))
recenum.append(idx)
receptime[idx] += recept[idx]
new.append([receptime[idx] + 1, idx, c])
new.sort()
for i in new:
flag = 0
for num in range(m):
if repairtime[num] < i[0]:
repairtime[num] = i[0] + repair[num] - 1
repairnum[i[2]] = num
flag = 1
break
if flag == 0:
idx = repairtime.index(min(repairtime))
repairnum[i[2]] = idx
repairtime[idx] += repair[idx]
for k1 in range(k):
if recenum[k1] + 1 == a and repairnum[k1] + 1 == b:
answer += (k1 + 1)
if answer == 0:
answer = -1
print('#{} {}'.format(test, answer))
'알고리즘 풀이 > SW Expert Academy' 카테고리의 다른 글
SW Expert Academy 2117. [모의 SW 역량테스트] 홈 방범 서비스 풀이 With Python (0) | 2020.03.26 |
---|---|
SW Expert Academy 2105. [모의 SW 역량테스트] 디저트 카페 풀이 With Python (0) | 2020.03.26 |
SW Expert Academy 1949. [모의 SW 역량테스트] 등산로 조성 풀이 With Python (0) | 2020.03.25 |
SW Expert Academy 5644. [모의 SW 역량테스트] 무선 충전 (0) | 2020.03.10 |
SW Expert Academy 5648. [모의 SW 역량테스트] 원자 소멸 시뮬레이션 (0) | 2020.03.10 |
Comments