10819: 차이를 최대로

ewillwin·2023년 4월 30일
0

Problem Solving (BOJ)

목록 보기
33/230

import sys

N = int(input())
tmp = list(map(int, sys.stdin.readline()[:-1].split(' ')))
visit = [False] * N
nodes = []

max_value = 0
def dfs():
    global max_value
    if len(nodes) == N:
        value = 0
        for j in range(1, N):
            value += abs(nodes[j] - nodes[j-1])
        if max_value < value:
            max_value = value
        return
    for i in range(N):
        if not visit[i]:
            nodes.append(tmp[i]); visit[i] = True
            dfs()
            nodes.pop(); visit[i] = False

dfs()
print(max_value)
  • 모든 node를 순회하여 각 정수들의 차이의 최댓값을 구함
  • 배열 안에 정수들이 같은 수가 들어있을 수도 있기 때문에 visit = [False] * N을 정의하여 모든 node들을 순회할 수 있도록 구현함
profile
💼 Software Engineer @ LG Electronics | 🎓 SungKyunKwan Univ. CSE

0개의 댓글