뚱땅뚱땅

[문제] SWEA 1228번 암호문1 본문

알고리즘/swea

[문제] SWEA 1228번 암호문1

양순이 2021. 2. 8. 17:04
728x90

* 출처: swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14w-rKAHACFAYD&categoryId=AV14w-rKAHACFAYD&categoryType=CODE&problemTitle=1228&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1

 

SW Expert Academy

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

swexpertacademy.com

 

내 풀이

 

LinkedList 를 이용하여 풀면 쉽게 풀리는 문제다.

입력 부분이 좀 복잡하므로 이 부분만 주의하면 될 듯 하다.

 

public class Solution {
	public static void main(String[] args) throws NumberFormatException, IOException {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		int T = 10;
		for(int tc=1;tc<= T;tc++) {
			sb.append("#").append(tc).append(" ");
			
			LinkedList<Integer> list = new LinkedList<>();
			
			int N = Integer.parseInt(in.readLine());	// 암호문 길이
			String s[] = in.readLine().split(" ");		// 암호문 N개
			for(int i=0;i<N;i++) {			
				list.add(Integer.parseInt(s[i]));
			}
			
			int I = Integer.parseInt(in.readLine());	// 명령어 개수
			String inst = in.readLine();				// 명령어
			st = new StringTokenizer(inst, " ");
			
			for(int i=0;i<I;i++) {
				String instI = st.nextToken();	//명령어 I
				int x = Integer.parseInt(st.nextToken());	//위치
				int y = Integer.parseInt(st.nextToken());	//삽입 개수
				for(int j=0;j<y;j++) {
					int add = Integer.parseInt(st.nextToken());
					list.add(x+j, add);
				}
			}
			
			for(int i=0;i<10;i++) {
				sb.append(list.get(i)).append(" ");
			}
			sb.append("\n");
			
		}
		
		System.out.println(sb);
	}
}
728x90
Comments