Hayden's Archive

[알고리즘] SW Expert Academy - 5356. 의석이의 세로로 말해요 본문

Algorithm

[알고리즘] SW Expert Academy - 5356. 의석이의 세로로 말해요

_hayden 2020. 7. 7. 19:01

알고리즘 문제 출처 : https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWVWgkP6sQ0DFAUO&categoryId=AWVWgkP6sQ0DFAUO&categoryType=CODE

 

SW Expert Academy

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

swexpertacademy.com

 

내가 작성한 코드

큐의 FIFO 성질을 이용해서 큐 5개를 만들면 어렵지 않게 풀 수 있다.

import java.util.Scanner;
import java.util.LinkedList;
import java.util.Queue;
import java.io.FileInputStream;

class Solution{
    public static Queue<String> putIntoQueue(String que){
		Queue<String> queue = new LinkedList<>();
		String[] queArr = que.split("");
		for(int i=0; i<queArr.length; i++) {
			queue.add(queArr[i]);
		}
		return queue;
	}
    
	public static void main(String args[]) throws Exception{
		Scanner sc = new Scanner(System.in);
		int T;
		T=sc.nextInt();
		
		for(int test_case = 1; test_case <= T; test_case++){
			String que1 = sc.next();
			String que2 = sc.next();
			String que3 = sc.next();
			String que4 = sc.next();
			String que5 = sc.next();
			Queue<String> queue1 = putIntoQueue(que1);
			Queue<String> queue2 = putIntoQueue(que2);
			Queue<String> queue3 = putIntoQueue(que3);
			Queue<String> queue4 = putIntoQueue(que4);
			Queue<String> queue5 = putIntoQueue(que5);
			String answer = "";
			while(true) {
				if(queue1.isEmpty()&&queue2.isEmpty()&&queue3.isEmpty()&&queue4.isEmpty()&&queue5.isEmpty()) break;
				if(queue1.isEmpty()) {
					answer += "";
				}else {
					answer += queue1.poll();
				}
				if(queue2.isEmpty()) {
					answer += "";
				}else {
					answer += queue2.poll();
				}
				if(queue3.isEmpty()) {
					answer += "";
				}else {
					answer += queue3.poll();
				}
				if(queue4.isEmpty()) {
					answer += "";
				}else {
					answer += queue4.poll();
				}
				if(queue5.isEmpty()) {
					answer += "";
				}else {
					answer += queue5.poll();
				}
			}
			System.out.println("#"+test_case+" "+answer);
		}
	}
}