-Code
n = int(input())
m = int(input())
num = sorted(list(map(int, input().split())))
cnt = 0
start, end = 0, n - 1
Sum = 0
while start < end:
Sum = num[start] + num[end]
if Sum == m:
cnt += 1
start += 1
end -= 1
elif Sum > m:
end -= 1
else:
start += 1
print(cnt)
for문 만들던 방식으로 While을 만드니 시간 초과가 되어 시간을 어떻게 줄일지 몰라서 수식을 찾아봤습니다. sort까지는 맞았으나 첫값과 끝값을 비교하여 계산하는 수식을 사용하는 것을 보고 해결을 하였으나 많이 아쉬운 문제였습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 3273번 두 수의 합 (0) | 2022.05.10 |
---|---|
[백준/파이썬] 6159번 코스튬 파티 (0) | 2022.05.10 |
[백준/파이썬] 2018번 수들의 합 5 (0) | 2022.05.10 |
[백준/파이썬] 22862번 가장 긴 짝수 연속한 부분 수열 (large) (0) | 2022.05.10 |
[백준/파이썬] 18868번 멀티버스 Ⅰ (0) | 2022.05.09 |