Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- ContextLoaderListener
- WAS
- FrontController
- Spring Container
- 양자의 얽힘
- tomcat
- web.xml
- Microsoft Hackers Ground
- 양자의 이중성
- spring boot
- DispatchServlet
- SpringBoot
- spring
- RequestDispatcher
- dd
- Servlet
- Handler Mapping
- 양자의 중첩
- JPA
- 양자컴퓨터
- 양자
Archives
- Today
- Total
HiTHerE !
1092 : 배 본문
https://www.acmicpc.net/problem/1092
1092번: 배
첫째 줄에 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에는 각 크레인의 무게 제한이 주어진다. 이 값은 1,000,000보다 작거나 같다. 셋째 줄에는 박스의 수 M이 주어진다. M은 10,000보
www.acmicpc.net
각 크레인은 무게 제한이 있고, 무게 제한보다 무거운 박스는 크레인으로 움직일 수 없으니
일단 둘째, 넷째 줄 입력으로 주어지는 크레인과 박스를 오름차순으로 정렬해 문제를 풀어보았다.
그렇게 문제를 풀다가..
[ 크레인 무게 제한 : 2 5 5 5 7 7 11 17 20 20 ]
[ 박스의 무게 : 15 15 17 18 18 ]
위와 같은 경우에서는 박스를 옮길 수 있는 크레인을 찾는 과정이 아주 약간... 번거로웠고,
내림차순으로 정렬하면 더 쉬워질 것 같았다.
또, 모든 박스를 배로 옮길 수 없으면 -1을 출력해야 하는데
이는 아마도 박스 무게를 감당 할 수 있는 크레인이 없는 경우에 해당할 것이고,
( 다른 경우도 있나...? )
내림차순으로 정렬되어 있다면 이 경우에 대해서도 쉽게 처리 할 수 있겠다고 생각했다 !
결론적으로,
크레인 무게 제한과 박스의 무게를 내림차순으로 정렬 한 후
무게 비교를 통해, 옮긴 화물이 담긴 박스는 리스트에서 제거하고
이 과정을 반복했다.
import sys
n = int(sys.stdin.readline())
crane = list(map(int, sys.stdin.readline().split()))
m = int(sys.stdin.readline())
box = list(map(int, sys.stdin.readline().split()))
crane.sort(reverse=True)
box.sort(reverse=True)
cnt = 0
if box[0] > crane[0]:
print(-1)
else:
while len(box) > 0:
cnt += 1
for i in crane:
for j in box:
if i >= j:
box.remove(j)
break
print(cnt)
근데 Python3 으로 하면 시간초과가 뜨고 PyPy3으로 하니까 맞았습니다! 나오눈디..?
'BOJ' 카테고리의 다른 글
1781 : 컵라면 (0) | 2023.02.27 |
---|---|
1715 : 카드 정렬하기 (0) | 2023.02.20 |
11000 : 강의실 배정 (1) | 2023.02.13 |
1461 : 도서관 (1) | 2023.02.13 |
1041 : 주사위 (1) | 2023.02.13 |