문제
N개의 이름을 홀수 인덱스는 앞에서부터, 짝수 인덱스는 뒤에서부터 출력하는 대칭 순서 재배열 문제
풀이
홀수 번째(0, 2, 4...) 이름을 순서대로 출력한 뒤, 짝수 번째 이름을 역순으로 출력한다. 이를 통해 대칭적인 순서가 만들어진다.
코드
#include <iostream>
#include <string>
using namespace std;
const int MAX = 100;
int N, M;
string s[MAX];
int main() {
cin.tie(NULL), cout.tie(NULL);
ios_base::sync_with_stdio(false);
while (true) {
int i;
cin >> N;
if (!N) break;
for (i = 0; i < N; i++) cin >> s[i];
cout << "SET " << ++M << "\n";
for (i = 0; i < N; i += 2) cout << s[i] << "\n";
for (i = N - 1 - (N % 2); i >= 0; i -= 2) cout << s[i] << "\n";
};
return 0;
}복잡도
- 시간: O(N) (N: 이름 수)
- 공간: O(N)