1 λΆ„ μ†Œμš”

πŸ“ [D3_3499] νΌνŽ™νŠΈ μ…”ν”Œ

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Solution {
	static StringTokenizer st;

	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();

		int T = Integer.parseInt(br.readLine());

		for (int tc = 1; tc <= T; tc++) {
			sb.append("#").append(tc).append(" ");

			int N = Integer.parseInt(br.readLine());

			ArrayList<String> list = new ArrayList<String>();

			// 짝수인 경우
			if (N % 2 == 0) {
				st = new StringTokenizer(br.readLine(), " ");
				for (int i = 0; i < N; i++) {
					list.add(st.nextToken());
				}
				int point = 1;
				for (int i = N / 2; i < N; i++) {
					String move = list.get(i);
					list.remove(i);
					list.add(point, move);
					point += 2;
				}

				for (int i = 0; i < N; i++) {
					sb.append(list.get(i)).append(" ");
				}

				sb.append("\n");
			}
			// ν™€μˆ˜μΈκ²½μš°
			else {
				st = new StringTokenizer(br.readLine(), " ");
				for (int i = 0; i < N; i++) {
					list.add(st.nextToken());
				}

				int point = 1;
				for (int i = N / 2 + 1; i < N; i++) {
					String move = list.get(i);
					list.remove(i);
					list.add(point, move);
					point += 2;
				}

				for (int i = 0; i < N; i++) {
					sb.append(list.get(i)).append(" ");
				}
				sb.append("\n");
			}
		}
		System.out.println(sb);
	}
}

πŸ€” λ‚˜μ˜ 생각

두 개둜 λ‚˜λˆ μ„œ 사이사이에 λ„£λŠ” 문제인데 , κ°€μž₯ 생각해야 ν•  것은 input κ°œμˆ˜κ°€ μ§μˆ˜μΈμ§€ ν™€μˆ˜μΈμ§€ 이닀.
κ²°κ³Όμ μœΌλ‘œλŠ” κ·Έλƒ₯ N을 λ‚˜λˆ μ„œ λ‘κ°œμ˜ λΆ€λΆ„μœΌλ‘œ κ΅¬ν˜„ν•˜μ˜€μ§€λ§Œ
λ‹€λ₯Έ κΈ°λ°œν•œ 아이디어λ₯Ό 생각해 λ΄€μ§€λ§Œ .. λ‚˜μ˜€μ§€ μ•Šμ•˜λ‹€.. γ…‹_γ…‹