본문 바로가기
Problem Solving/SWEA

[SWEA] 3499. 퍼펙트 셔플

by 테리는당근을좋아해 2020. 2. 21.

문제

퍼펙트 셔플이란 카드 덱을 정확히 전반으로 나누고 나눈 것들에서 교대로 카드를 뽑아 새로운 덱을 만드는 것이다.

 

n개의 카드가 주어질 때, 퍼펙트 셔플한 결과를 구하는 문제

 

 

풀이방법

입력된 n개의 카드를 배열에 담고 절반으로 나누어 다시 두 배열에 나누어 담는다.

 

그런다음 두 배열을 교차해가면서 출력해준다.

 

소스코드

package samsung;

import java.util.*;

public class s_3499 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int test = sc.nextInt();
		
		for(int t = 1; t <= test; t++) {
			int n = sc.nextInt();
			int a = 0, b = 0;
			if(n % 2 == 1) {
				a = n/2 + 1;
				b = n/2;
			}
			else {
				a = n/2;
				b = n/2;
			}
			
			String[] arr1 = new String[a];
			String[] arr2 = new String[b];
			
			for(int i  = 0; i < a; i++) {
				arr1[i] = sc.next();
			}
			for(int i = 0; i < b; i++) {
				arr2[i] = sc.next();
			}
			
			String[] arr3 = new String[n];
			
			for(int i = 0; i < n; i++) {
				if(i % 2 == 0) {
					arr3[i] = arr1[i / 2];
				}
				else {
					arr3[i] = arr2[i / 2];
				}
			}
			System.out.print("#" + t + " ");	
			for(int i = 0; i < n; i++) {
				System.out.print(arr3[i] + " ");
			}
			System.out.println();
			
		}
	}
}

댓글