뚱땅뚱땅

[문제] SWEA 3499번 퍼펙트 셔플 본문

알고리즘/swea

[문제] SWEA 3499번 퍼펙트 셔플

양순이 2021. 2. 5. 21:47
728x90

* 출처: swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AXdYAPEK7mADFAUO&contestProbId=AWGsRbk6AQIDFAVW&probBoxId=AXdvh1vaLTwDFAUO&type=PROBLEM&problemBoxTitle=210205&problemBoxCnt=2

 

SW Expert Academy

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

swexpertacademy.com

내 생각

 

큐 두개를 이용하면 쉽게 풀리는 문제

public class SWEA_3499 {
	
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

		int T = Integer.parseInt(in.readLine());
		StringBuilder ans;
		
		Queue<String> q1 = new LinkedList<>();
		Queue<String> q2 = new LinkedList<>();
		
		for(int tc = 1;tc<=T;tc++) {
			int N = Integer.parseInt(in.readLine());
			String[] s = in.readLine().split(" ");
			
			ans = new StringBuilder();
			
			if(N%2 == 0) {
				for(int i=0;i<N/2;i++) {
					q1.offer(s[i]);
				}
				for(int i=N/2;i<N;i++) {
					q2.offer(s[i]);
				}
				
				for(int i=0;i<N/2;i++) {
					ans.append(q1.poll()).append(' ');
					ans.append(q2.poll()).append(' ');
				}
			}
			else {
				for(int i=0;i<=N/2;i++) {
					q1.offer(s[i]);
				}
				for(int i=N/2+1;i<N;i++) {
					q2.offer(s[i]);
				}
				
				
				for(int i=0;i<N/2;i++) {
					ans.append(q1.poll()).append(' ');
					ans.append(q2.poll()).append(' ');
					
				}
				ans.append(q1.poll()).append(' ');
			}
			System.out.println("#"+tc+" "+ans);
		}
	}
}
728x90
Comments