관리 메뉴

솜씨좋은장씨

[BaekJoon] 20366번 : 같이 눈사람 만들래? (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 20366번 : 같이 눈사람 만들래? (Python)

솜씨좋은장씨 2021. 12. 24. 19:34
728x90
반응형

코딩 1일 1문제! 오늘의 문제는 백준의 같이 눈사람 만들래? 입니다.

 

20366번: 같이 눈사람 만들래?

높이가 (2, 5), (3, 5)로 구성된 눈사람 둘을 만드는 것이 최적의 경우 중 하나이다. |7-8| = 1 다른 경우로는 (2, 9), (5, 5)로 두 눈사람을 만드는 경우가 있다. |11-10| = 1

www.acmicpc.net

👨🏻‍💻 코드 ( Solution )

def do_yo_wanna_build_a_snowman(N, snowballs):
    height_diff = 9999999999
    
    for i in range(N):
        for j in range(i + 3, N):
            snowman1 = snowballs[i] + snowballs[j]
            left, right = i + 1, j - 1

            while left < right:
                snowman2 = snowballs[left] + snowballs[right]
                if abs(snowman2 - snowman1) < height_diff:
                    height_diff = abs(snowman2 - snowman1)

                if snowman2 < snowman1:
                    left += 1
                elif snowman2 > snowman1:
                    right -= 1
                else:
                    return 0

    return height_diff


if __name__ == "__main__":
    N = int(input())
    snowballs = sorted(list(map(int,input().split())))
    print(do_yo_wanna_build_a_snowman(N, snowballs))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments