fragment-header
fragment-markdown
홈
로그인
로그아웃
내 블로그
설정
로그인
백준 25184 (C++) 동가수열 구하기
최초 업로드: 2025-04-17 08:08:41
최근 수정 시간: 2025-07-25 09:43:03
게시자: rlatjwls3333
카테고리: 백준
조회수: 9
# [Silver IV] 동가수열 구하기 [문제 링크](https://www.acmicpc.net/problem/25184) ## 문제 설명 <p>길이가 $N$인 동가수열은 다음 두 조건을 만족하는 수열이다.</p> <ul> <li>동가수열은 $1$ 이상 $N$ 이하인 정수로 이루어져 있고, 모든 원소는 서로 다르다.</li> <li>동가수열의 서로 이웃한 원소의 차는 $lfloor frac{N}{2} floor$이상이다.</li> </ul> <p>길이가 $N$인 동가수열을 아무거나 하나 구해보자. 주어지는 모든 입력에 대해 동가수열은 항상 존재한다.</p> ## 입력 <p>첫째 줄에 구하고자 하는 동가수열의 길이 $N$($1 le N le 5,000$)이 주어진다.</p> ## 출력 <p>첫째 줄에 길이가 $N$인 동가수열을 아무거나 하나 출력한다. 동가수열은 공백으로 구분해서 출력해야 한다.</p> ## 풀이 #### 예제 입력처럼 (n+1)/2-i/2, n-(i-1)/2 번째를 번갈아가며 출력하였다. ``` c++ #include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; for(int i=1;i<=n;i++) { if(i%2==1) { cout << (n+1)/2-i/2 << ' '; } else { cout << n-(i-1)/2 << ' '; } } } ```