728x90
✅ 문제 요약
문자열이 주어졌을 때 문자열을 절반씩 나누어 나뉜 두 문자열을 순차적으로 하나씩 섞은 뒤 결과를 출력하라
🤔 문제 풀이
일단 주어지는 문자열의 개수가 짝수이냐 홀수이냐로 나누었다.
짝수라면 반반 나누면 되지만 홀수인 경우 첫번째 배열에 1가지가 더 저장되어야되기 때문
두 배열에 각각 저장한 뒤엔 두 배열에서 번갈아가며 answer배열에 저장하고 출력하면 된다.
🚨CODE
import java.util.*;
import java.io.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int testCase = Integer.parseInt(br.readLine());
for (int t = 1; t <= testCase; t++) {
int n = Integer.parseInt(br.readLine());
String[] a = new String[n/2+1];
String[] b = new String[n/2];
String[] answer = new String[n];
StringTokenizer st = new StringTokenizer(br.readLine());
if(n % 2 == 0) {
for(int i = 0; i<n/2; i++) {
a[i] = st.nextToken();
}
for(int i = 0; i<n - n/2; i++) {
b[i] = st.nextToken();
}
}else {
for(int i = 0; i<n/2+1; i++) {
a[i] = st.nextToken();
}
for(int i = 0; i<n - (n/2+1); i++) {
b[i] = st.nextToken();
}
}
int aidx = 0; int bidx = 0;
for(int i = 1; i<=n; i++) {
if(i % 2 == 1) {
answer[i-1] = a[aidx++];
}else {
answer[i-1] = b[bidx++];
}
}
StringBuilder sb = new StringBuilder();
for(String e : answer) {
sb.append(e).append(" ");
}
bw.write(String.format("#%d %s\n", t, sb.toString()));
}
bw.flush();
}
}
728x90
반응형
'코딩테스트' 카테고리의 다른 글
[JAVA-D3] SWEA 4047 - 영준이의 카드 카운팅 (0) | 2024.05.03 |
---|---|
[JAVA-D3] SWEA 9280 - 진용이네 주차타워 (0) | 2024.05.03 |
[JAVA-SW_TEST_SAMPLE] SWEA 1767 - 프로세서 연결하기 (0) | 2024.05.01 |
[JAVA-D3] SWEA 6485 - 삼성시의 버스 노선 (1) | 2024.05.01 |
[JAVA-D3] SWEA 3431 - 준환이의 운동관리 (0) | 2024.05.01 |