기몽수
코딩 기록일지
기몽수
전체 방문자
오늘
어제
  • 분류 전체보기 (443)
    • 알고리즘 - SWEA (210)
      • D1 (19)
      • D2 (25)
      • D3 (143)
      • D4 (21)
      • D5 (2)
    • 알고리즘 - Programmers (74)
      • Unrated (34)
      • Lv 0 (4)
      • Lv 1 (3)
      • Lv 2 (32)
      • Lv 3 (1)
    • 알고리즘 - Baekjoon (158)
      • Bronze (1)
      • Silver (65)
      • Gold (90)
      • Platinum (2)
    • 취업 (0)
    • SSAFY (1)
hELLO · Designed By 김용수.
기몽수

코딩 기록일지

알고리즘 - SWEA/D3

[SW expert Academy] SWEA 3499번 퍼펙트 셔플 자바(Java)

2023. 10. 30. 00:21

[D3] 퍼펙트 셔플 - 3499

문제 링크

성능 요약

메모리: 35,956 KB, 시간: 179 ms, 코드길이: 879 Bytes

제출 일자

2023-10-30 00:14

출처: SW Expert Academy, https://swexpertacademy.com/main/code/problem/problemList.do

import java.util.*;
class Solution
{
	public static void main(String args[]) throws Exception {
		Scanner sc = new Scanner(System.in);
 		int T = sc.nextInt();
		for(int tc = 1; tc <= T; tc++)
		{
            int n = sc.nextInt();
            Queue<String> queue1 = new LinkedList<>();
            Queue<String> queue2 = new LinkedList<>();
            for(int i = 0; i < (n/2 + n % 2); i++){
                queue1.add(sc.next());
            }
            for(int i = 0; i < n/2; i++){
                queue2.add(sc.next());
            }
            StringBuilder sb = new StringBuilder();
            while(!queue2.isEmpty()){
                sb.append(queue1.poll()+ " " );
                sb.append(queue2.poll() + " ");
            }
            if(!queue1.isEmpty()) sb.append(queue1.poll());
            System.out.println("#" + tc + " " + sb.toString());
        }
	}
}

큐를 2개 만들어서 단순하게 사용가능

배열을 이용해서 푸는 방법도 있음.

import java.util.*;
class Solution
{
    public static void main(String args[]) throws Exception {
        Scanner sc = new Scanner(System.in);
        int T = sc.nextInt();
        for(int tc = 1; tc <= T; tc++)
        {
            int n = sc.nextInt();
            String[] cards = new String[n];
            for(int i = 0; i < n; i++){cards[i] = sc.next();}
            StringBuilder sb = new StringBuilder();
            for(int i = 0; i < n/2; i++){
                sb.append(cards[i] + " ");
                sb.append(cards[i + (n / 2 + n % 2)] + " ");
            }
            if(n % 2 != 0){
                sb.append(cards[n / 2]);
            }
            System.out.println("#" + tc + " " + sb.toString());
        }
    }
}

 

'알고리즘 - SWEA > D3' 카테고리의 다른 글

[SW expert Academy] SWEA 5456번 의석이의 세로로 말해요 자바(Java)  (0) 2023.10.30
[SW expert Academy] SWEA 1234번 10일차 자바(Java)  (0) 2023.10.30
[SW expert Academy] SWEA 3307번 최장 증가 부분 수열 자바(Java)  (0) 2023.10.29
[SW expert Academy] SWEA 1873번 상호의 배틀필드 자바(Java)  (1) 2023.10.29
[SW expert Academy] SWEA 1221번 GNS 자바(Java)  (1) 2023.10.29
    '알고리즘 - SWEA/D3' 카테고리의 다른 글
    • [SW expert Academy] SWEA 5456번 의석이의 세로로 말해요 자바(Java)
    • [SW expert Academy] SWEA 1234번 10일차 자바(Java)
    • [SW expert Academy] SWEA 3307번 최장 증가 부분 수열 자바(Java)
    • [SW expert Academy] SWEA 1873번 상호의 배틀필드 자바(Java)
    기몽수
    기몽수

    티스토리툴바