알고리즘/SWEA
SWEA 1228번 암호문1
anott
2021. 8. 9. 23:40
출처: SW Expert Academy
제출 날짜: 2021년 8월 9일 월요일
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.StringTokenizer;
import java.io.FileInputStream;
class Solution {
public static void main(String args[]) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
for (int test_case = 1; test_case <= 10; test_case++) { // 10개의 테스트 케이스
LinkedList<Integer> pw = new LinkedList<>();
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken()); // 원본 암호문의 길이 N ( 10 ≤ N ≤ 20 의 정수)
st = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < N; i++) { // 원본 암호문 입력 받기
pw.add(Integer.parseInt(st.nextToken()));
}
st = new StringTokenizer(br.readLine());
int M = Integer.parseInt(st.nextToken()); // 명령어의 개수 ( 5 ≤ N ≤ 10 의 정수)
st = new StringTokenizer(br.readLine(), " ");
for (int i = 0; i < M; i++) { // 명령어 입력 받기
char I = st.nextToken().charAt(0); // I
int X = Integer.parseInt(st.nextToken()); // 앞에서부터 X의 위치
int Y = Integer.parseInt(st.nextToken()); // Y개의 숫자를 삽입
for (int j = 0; j < Y; j++) { // 덧붙일 숫자들
pw.add(X + j, Integer.parseInt(st.nextToken())); // 한 칸씩 밀리기 때문에 X+j 위치에 삽입
}
}
StringBuilder sb = new StringBuilder("#" + test_case + " ");
for (int i = 0; i < 10; i++) { // 수정된 결과의 처음 10개 숫자를 출력
sb.append(pw.get(i) + " ");
}
System.out.println(sb); // 답 출력
}
}
}