728x90
1. 문제
2. 풀이
import java.util.Scanner;
public class D3_3499_퍼펙트셔플 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int T = in.nextInt();
StringBuilder sb = new StringBuilder();
for (int tc = 1; tc <= T; tc++) {
sb.append("#").append(tc).append(" ");
int N = in.nextInt();
String[] cards = new String[N];
//입력
int idx = 0;
for (int i = 0; i < N; i++) {
cards[idx] = in.next();
idx += 2;
if (idx >= N) idx = 1;
}
//출력
for (int i = 0; i < N; i++) {
sb.append(cards[i]).append(" ");
}
sb.append("\n");
}
System.out.print(sb);
}
}
반으로 갈라서 지그재그로 섞는 문제였는데, 굳이 반으로 가를 필요 없이 입력받을 때부터 섞어도 되겠단 생각이 들었다.
처음 인덱스를 0으로 시작해서 입력받을 때마다 +2 해준 뒤, 인덱스가 카드의 개수를 넘어가면 1로 초기화하고 다시 반복을 시작한다.
3. 결과
Scanner를 쓰면 확실히 코드가 간단해지긴 하는데, 역시 BufferedReader가 더 빠르다.
'코딩테스트 > SWEA' 카테고리의 다른 글
[SWEA] 1224 계산기3 - JAVA (0) | 2022.02.09 |
---|---|
[SWEA] 1223 계산기2 - JAVA (0) | 2022.02.09 |
[SWEA] 1861 정사각형 방 - JAVA (0) | 2022.02.09 |
[SWEA] 1218 괄호짝찾기 - JAVA (0) | 2022.02.07 |
[SWEA] 5215 햄버거 다이어트 - JAVA (0) | 2022.02.07 |
댓글