N,S = map(int,input().split())
arr = list(map(int,input().split()))
start,end = 0,0
temp = 0
result = float('inf')

while start <= end:
    if temp >= S:
        temp = temp - arr[start]
        result = min(result,end - start)
        start += 1
    elif end == N:
        start += 1
    else:
        temp = temp + arr[end]
        end += 1
if result == float('inf'):
    print(0)
else:
    print(result)

투 포인터를 활용한 문제이고, 투포인터를 이용해서, 주어진 S 값이 넘어갔을때 최소 길이를 비교해주는 방식으로 했다.

'알고리즘 > 백준' 카테고리의 다른 글

[BOJ/백준] 1300 K번째 수  (0) 2021.04.08
[BOJ/백준] 1967 트리의 지름  (0) 2021.04.08
[BOJ/백준] 10868 최소 값 찾기  (0) 2021.03.20
[BOJ/백준] 2042 구간 합 구하기  (0) 2021.03.12
[BOJ/백준] 2075 N번째 큰 수  (0) 2021.03.12
N = int(input())


arr = list(map(int,input().split()))

start = 0
end = N-1
index_list = (arr[start],arr[end])
result = arr[end]+arr[start]

while start<end:
    temp = arr[end]+arr[start]
    if abs(result) > abs(temp):
        result = temp
        index_list = (arr[start],arr[end])
        if result == 0:
            break
    if temp >= 0:
        end -= 1
    else:
        start += 1


print(*index_list)

두 용액 문제하고 동일하다. 투 포인터를 이용해서 풀어주면 된다.

'알고리즘 > 백준' 카테고리의 다른 글

[BOJ/백준] 11000 강의실 배정  (0) 2021.02.27
[BOJ/백준] 13911 집구하기  (0) 2021.02.27
[BOJ/백준] 4811 알약  (0) 2021.02.25
[BOJ/백준] 19606 Escape Room  (0) 2021.02.24
[BOJ/백준] 7622 이중 우선순위 큐  (0) 2021.02.23
N = int(input())


arr = list(map(int,input().split()))

arr.sort()

start = 0
end = N-1
index_list = (arr[start],arr[end])
result = arr[end]+arr[start]

while start<end:
    temp = arr[end]+arr[start]
    if abs(result) > abs(temp):
        result = temp
        index_list = (arr[start],arr[end])
        if result == 0:
            break
    if temp >= 0:
        end -= 1
    else:
        start += 1


print(*index_list)

유명한 투 포인터 문제이다.

 

푸는 방법은 먼저 입력리스트를 정렬해준뒤에 0을 start로 N-1을 end로 둔다.

 

그리고 그 두 위치의 인덱스의 위치에 존재하는 값들의 합이 0보다 크면 end를 -1 하고 작으면 start를 +1 해준다. 그리고 그 합들이 0에 가까우면 교체해주는 방식으로 했다.

'알고리즘 > 백준' 카테고리의 다른 글

[BOJ/백준] 2660 회장 뽑기  (0) 2021.02.22
[BOJ/백준] 13023 ABCDE  (0) 2021.02.21
[BOJ/백준] 5719 거의 최단 경로  (0) 2021.02.19
[BOJ/백준] 5582 공통 부분 문자열  (0) 2021.02.18
[BOJ/백준] 3020 개똥벌레  (0) 2021.02.18

+ Recent posts