SSAFY/SWEA

[SWEA] 3499 : 퍼펙트셔플

믕비 2023. 5. 7. 15:49
반응형

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AWGsRbk6AQIDFAVW&categoryId=AWGsRbk6AQIDFAVW&categoryType=CODE&problemTitle=&orderBy=INQUERY_COUNT&selectCodeLang=JAVA&select-1=3&pageSize=10&pageIndex=3 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

문제에서 덱을 사용했다고 아예 명시돼있어서 풀기 어려운 문제는 아닌 것 같음.

stack 성질은 필요없어서 나는 queue로 풀었다. 짝수와 홀수로 풀었음.

 

내 코드

메모리 : 25104 KB

시간 : 129 ms

코드길이 : 1202 B

 

[내 코드]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;

public class Solution {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		
		int T = Integer.parseInt(br.readLine());
		for(int t = 1; t <= T; t++) {
			sb.append('#').append(t).append(' ');
			int N = Integer.parseInt(br.readLine());
			Queue<String> whole = new LinkedList<>();
			Queue<String> A = new LinkedList<>();
			Queue<String> B = new LinkedList<>();
			
			st = new StringTokenizer(br.readLine());
			for(int n = 0; n < N; n++) {
				String card = st.nextToken();
				if(N % 2 == 0) {
					if(n < N / 2)
						A.offer(card);
					else
						B.offer(card);
				}
				else {
					if(n < N /2 + 1)
						A.offer(card);
					else
						B.offer(card);
				}
			}
			
			for(int n = 0; n < N; n++) {
				if(n % 2 == 0)
					sb.append(A.poll()).append(' ');
				else
					sb.append(B.poll()).append(' ');
			}
			sb.append('\n');
		}
		System.out.print(sb);
	}
}
반응형

'SSAFY > SWEA' 카테고리의 다른 글

[SWEA] 1209 : Sum  (0) 2023.05.08
[SWEA] 1208 : Flatten  (0) 2023.05.08
[SWEA] 9658 : 유효숫자 표기  (0) 2023.05.07
[SWEA] 3431 : 준환이의 운동관리  (0) 2023.05.07
[SWEA] 2806 : N-Queen  (0) 2023.05.07