diff --git a/백준/Silver/30618. donstructive/README.md b/백준/Silver/30618. donstructive/README.md new file mode 100644 index 0000000..42a5590 --- /dev/null +++ b/백준/Silver/30618. donstructive/README.md @@ -0,0 +1,37 @@ +# [Silver IV] donstructive - 30618 + +[문제 링크](https://www.acmicpc.net/problem/30618) + +### 성능 요약 + +메모리: 45836 KB, 시간: 108 ms + +### 분류 + +해 구성하기 + +### 제출 일자 + +2026년 2월 9일 20:43:33 + +### 문제 설명 + +

순열1부터 N까지 N개의 정수가 각각 한 번씩 나오는 수열이다. 예를 들어, [1], [3,5,2,1,4], [1,3,2]는 순열이지만, [2,3,2], [4,3,1], [0]은 순열이 아니다.

+ +

순열의 점수는 다음과 같은 방법으로 구한다.

+ +
    +
  1. 순열의 모든 연속 부분 수열 각각에 대해 원소의 합을 구한다.
  2. +
  3. 순열의 점수는 (1)에서 구한 모든 값의 합이다.
  4. +
+ +

길이가 N인 모든 순열 중에서 점수가 가장 높은 순열을 구해보자. 점수가 가장 높은 순열이 여러 가지라면 그 중 아무거나 하나를 출력한다.

+ +### 입력 + +

첫째 줄에 구하고자 하는 순열의 길이 N이 주어진다. (1N200000)

+ +### 출력 + +

첫째 줄에 점수가 가장 높은 순열에 해당하는 N개의 정수를 공백으로 구분해서 출력한다.

+ diff --git a/백준/Silver/30618. donstructive/donstructive.py b/백준/Silver/30618. donstructive/donstructive.py new file mode 100644 index 0000000..cc3bb5e --- /dev/null +++ b/백준/Silver/30618. donstructive/donstructive.py @@ -0,0 +1,8 @@ +import sys +input = sys.stdin.readline + +n = int(input()) +odds = list(range(1, n + 1, 2)) # 1,3,5,... +evens = list(range(2, n + 1, 2))[::-1] # ...,4,2 (내림차순) +ans = odds + evens +print(*ans) \ No newline at end of file