본문 바로가기
공부/알고리즘

[SWEA]3499_퍼펙트 셔플_Java 풀이

by happyeuni 2022. 2. 9.

페이지링크

 

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWGsRbk6AQIDFAVW 

 

SW Expert Academy

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

swexpertacademy.com

<풀이>

  • 반 잘라서 그 반절의 뭉탱이끼리 섞기
  • LinkedList의 add는 index와 value 둘 다 사용해서 넣는 방법이 있으므로
  • 입력받을 때 반절 넣어놓고 나머지 반절을 사이사이에 넣어주었다.
  • Math.ceil(값)  : 값을 올림(double형)

 

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

public class Solution_3499 {

	public static void main(String[] args) throws NumberFormatException, IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder("");
		int T = Integer.parseInt(br.readLine());
		for(int testCase = 1;testCase <=T;testCase++) {
			LinkedList<String> list = new LinkedList<>();
			int N = Integer.parseInt(br.readLine());
			//String []card = br.readLine().split(" ");
			
			StringTokenizer st = new StringTokenizer(br.readLine());
			int half = (int)Math.ceil(N/2.0);
			for(int i=0;i<half;i++) {
				list.add(st.nextToken());
			}
			for(int i= 1;i<N;i+=2) {
				list.add(i,st.nextToken());
			}
			sb.append("#").append(testCase).append(" ");
			for(int i=0;i<N;i++) {
				sb.append(list.get(i)).append(" ");
			}
			sb.append("\n");
			
			
			
		}
		System.out.println(sb.toString());
	}

}

 

 

https://github.com/LeeJieuni/Algorithm/blob/main/SWEA/Solution_3499_%EC%9D%B4%EC%A7%80%EC%9D%80.java

 

GitHub - LeeJieuni/Algorithm

Contribute to LeeJieuni/Algorithm development by creating an account on GitHub.

github.com

 

댓글