ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
์์ 10974 ๋ชจ๋ ์์ด์์ ํน์ ์๊ฐ ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ก ๋ณ๊ฒฝ๋ ๋ฌธ์ ์ด๋ค. ์ด ์ญ์ DFS๋ฅผ ํตํด ์์ด์ ๊ตฌํ๋ ๋ฒ์ ์๊ณ ์๋ค๋ฉด ์ฝ๊ฒ ํ ์ ์๋ค. ์ ๋ ฅ๋๋ ๊ฐ๋ค์ ์ ๋ ฌ๋ ์ํ๊ฐ ์๋๋ฏ๋ก, DFS๋ฅผ ํตํด ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๊ธฐ ์ ์ ์ ๋ ฌ์ด ํ์ํ๋ค.
์ฝ๋
DFS๋ฅผ ์ฌ์ฉํ ๋ฌธ์ ํ์ด
from sys import stdin
def dfs(depth):
global answer
if depth == n:
answer.append([nums[i] for i in check])
else:
for i in range(n):
if i in check:
continue
check[depth] = i
dfs(depth + 1)
check[depth] = -1
if __name__ == '__main__':
answer = []
n = int(stdin.readline())
nums = sorted(list(map(int, stdin.readline().split())))
check = [-1] * n
dfs(0)
min_case = 0
for case in answer:
sum_case = 0
for i in range(n - 1):
sum_case += abs(case[i] - case[i + 1])
min_case = max(min_case, sum_case)
print(min_case)
itertools๋ฅผ ํ์ฉํ ๋ฌธ์ ํ์ด
from itertools import permutations
N = int(input())
cases = permutations(sorted(list(map(int, input().split()))))
answer = 0
for case in cases:
sum_case = 0
for i in range(N - 1):
sum_case += abs(case[i]-case[i + 1])
answer = max(answer, sum_case)
print(answer)
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 10971 ์ธํ์ ์ํ 2 (0) | 2020.07.16 |
---|---|
๋ฐฑ์ค: 6603 ๋ก๋ (0) | 2020.07.15 |
๋ฐฑ์ค: 10974 ๋ชจ๋ ์์ด (0) | 2020.07.15 |
๋ฐฑ์ค: 10973 ์ด์ ์์ด (0) | 2020.07.15 |
๋ฐฑ์ค: 10972 ๋ค์ ์์ด (0) | 2020.07.15 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ