문제
퍼펙트 셔플이란 카드 덱을 정확히 전반으로 나누고 나눈 것들에서 교대로 카드를 뽑아 새로운 덱을 만드는 것이다.
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();
}
}
}
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA] 4406. 모음이 보이지 않는 사람 (0) | 2020.02.21 |
---|---|
[SWEA] 4047. 영준이의 카드 카운팅 (0) | 2020.02.21 |
[SWEA] 3456. 직사각형 길이 찾기 (0) | 2020.02.21 |
[SWEA] 3431. 준환이의 운동관리 (0) | 2020.02.21 |
[SWEA] 3314. 보충학습과 평균 (0) | 2020.02.21 |
댓글