[파이썬][백준 20366][💛골드 3] 같이 눈사람 만들래? (조합, 투포인터)

Date:     Updated:

Categories:

Tags:

🧞‍♂️‍ 난이도

💛 골드 3


🧞‍♂️ 문제

https://www.acmicpc.net/problem/20366

image


🧞‍♂️ 내 풀이

이름이 귀여워서 골랐는데 너무 어려웠다.. i 랑 i+3 으로 투포인터를 하고, 그 두 포인터로 또 두개의 포인터를 만들어서 풀어야되는데.. 이런 생각을 도대체 어떻게 하는건지 머르겠다

🧞‍♂️ 파이썬 코드

import sys
input = sys.stdin.readline
N = int(input())
snowballs = sorted(list(map(int, input().rstrip().split())))
answer = float('inf')
for i in range(N):
    for j in range(i+3, N):
        left, right = i+1, j-1
        while left <= right:
            _sum = (snowballs[i] + snowballs[j]) - (snowballs[left] + snowballs[right])
            answer = min(answer, abs(_sum))
            if _sum < 0:
                right -= 1
            else:
                left += 1
print(answer)


맨 위로 이동하기

BOJ 카테고리 내 다른 글 보러가기