개발 공부 기록
[SWEA 3499번 /JAVA] 퍼펙트 셔플 본문
Question
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWGsRbk6AQIDFAVW
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
💡 Solution
이번 문제는 단순 구현 문제로, 실제 코딩 테스트를 보고 있는 상황이라 가정하여 시간이 얼마 안 남았을 경우 내가 생각한대로 막 구현해보자! 라는 마음으로 풀어봤습니다. 따라서 풀이가 깨끗하지 않을 수도 있습니다😂 제가 인덱스를 가지고 노는 것에 약한데, 연습이 더욱 된다면 코드가 더 간결해질 수 있을 거 같습니다.
💻 Code
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class SWEA3499 {
static List<String> deck = new ArrayList<>();
static List<String> result = new ArrayList<>();
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
StringTokenizer st;
for(int tc = 1; tc <= T; tc++) {
int N = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine(), " ");
deck.clear();
result.clear();
for(int i = 0; i < N; i++) {
deck.add(st.nextToken());
}
System.out.printf("#%d ", tc);
result = solve(N);
for (String card : result) {
System.out.print(card + " ");
}
System.out.println();
}
}
public static List<String> solve(int n) {
List<String> left = new ArrayList<>();
List<String> right = new ArrayList<>();
if(n % 2 != 0) {
n++;
}
for (int i = 0; i < n / 2; i++) {
left.add(deck.get(i));
}
for (int i = n / 2; i < deck.size(); i++) {
right.add(deck.get(i));
}
int size = Math.min(left.size(), right.size());
for (int i = 0; i < size; i++) {
result.add(left.get(i));
result.add(right.get(i));
}
if(left.size() > right.size()) {
result.add(left.get(left.size() - 1));
}
return result;
}
}
'PS > Implement' 카테고리의 다른 글
[SWEA 1215번, 1216 / JAVA] 회문 1, 회문 2 (1) | 2023.11.13 |
---|---|
[SWEA 1225번 / JAVA] 암호생성기 (1) | 2023.11.12 |
[SWEA 5215번 /JAVA] 햄버거 다이어트 (0) | 2023.11.02 |
[Baekjoon 13335번/JAVA] 트럭 (Queue) (0) | 2023.10.26 |
[Baekjoon 1966번/JAVA] 프린터 큐(Queue) (1) | 2023.10.21 |