[swexpert] 3499. 퍼펙트 셔플 (JAVA, D3)

728x90
반응형

카드

적힌 글자 A B C D E

인덱스     0 1 2 3  4

가 있으면 A는 인덱스가 i+n/2+1 인 D와 매칭이 된다. 

첫 번째 묶음을 길이가 N/2만큼 나눌 건데 홀수인 경우만 하나를 더 넣어주므로 N/2+1 처럼 1 처해준다.

따라서 첫 번째 묶음의 마지막 인덱스는 N이 짝수인 경우 N/2이고 홀수인 경우 N/2+1이다.

 

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

public class Solution {
	static int t,n,last;
	static String[] card;
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
		t=Integer.parseInt(br.readLine());
		for (int tc = 0; tc < t; tc++) {
			n=Integer.parseInt(br.readLine());
			card=new String[n];
			st=new StringTokenizer(br.readLine());
			for (int i = 0; i < n; i++) {
				card[i]=st.nextToken();
			}
			System.out.printf("#%d ",tc+1);
			if(n%2==0) {
				last=n/2;
			}else {
				last=n/2+1;
			}
			for (int i = 0; i <last; i++) {
				System.out.printf("%s ",card[i]);
				if(n%2==0) {
					if(i+last<n)
						System.out.printf("%s ",card[i+last]);
				}else {
					if(i+last<n)
						System.out.printf("%s ",card[i+last]);
				}
				
			}
			System.out.println();
		}
		
	}
}
728x90
반응형
TAGS.

Comments