유럽에서 가장 유명했던 유람선 타이타닉이 침몰하고 있습니다. 유람선에는 N명의 승객이 타고
있습니다. 구명보트를 타고 탈출해야 하는데 타이타닉에 있는 구명보트는 2명 이하로만 탈 수 있
으며, 보트 한 개에 탈 수 있는 총 무게도 M kg 이하로 제한되어 있습니다.
N명의 승객 몸무게가 주어졌을 때 승객 모두가 탈출하기 위한 구명보트의 최소개수를 출력하는
프로그램을 작성하세요.
▣ 입력설명
첫째 줄에 자연수 N(5<=N<=1000)과 M(70<=M<=250)이 주어집니다.
두 번째 줄에 N개로 구성된 몸무게 수열이 주어집니다. 몸무게는 50이상 150이하입니다.
각 승객의 몸무게는 M을 넘지는 않습니다. 즉 탈출을 못하는 경우는 없습니다.
▣ 출력설명
첫째 줄에 구명보트의 최소 개수를 출력합니다.
▣ 입력예제 1
5 140
90 50 70 100 60
▣ 출력예제 1
3
#n명 사람들 #보트 한개당 감당 무게 #구명보트는 두명 이하
n, m =map(int, input().split())
w=list(map(int, input().split()))
w.sort()
cnt=0
for i in range(n) :
k=m-w[i]
for j in range(n-1,i,-1):
if k>=w[j]:
cnt+=1
break
print(n-cnt)
print(cnt)
입력값3부터 사소하게 어긋하기 시작한다. 어떤 부분이 잘못된건지 파악 불가능
===>살펴보니 중복되는 부분이 존재할 수 밖에 없다ㅠㅠ
n, m =map(int, input().split())
w=list(map(int, input().split()))
w.sort()
cnt=0
while w:
if len(w)==1:
cnt+=1
break
if w[0]+w[-1]>m:
w.pop()
cnt+=1
else :
w.pop(0)
w.pop()
cnt+=1
wrint(c)
from collections import deque
n, limit=map(int, input().split())
p=list(map(int, input().split()))
p.sort()
p=deque(p)
cnt=0
while p:
if len(p)==1:
cnt+=1
break
if p[0]+p[-1]>limit:
p.pop()
cnt+=1
else:
p.popleft()
p.pop()
cnt+=1
print(cnt)
n,m=map(int,input().split())
w=list(map(int,input().split()))
w.sort()
cnt=0
lt=0
rt=n-1
while lt<=rt:
if w[lt]+w[rt]<=m:
cnt+=1
lt+=1
rt-=1
else:
rt-=1
cnt+=1
print(cnt)
cnt=0
s=0
e=n-1
while s<=e:
if a[s]+a[e]<=m:
s+=1
cnt+=1
e-=1
print(cnt)