728x90
반응형
0 ~ 999999 사이의 수를 나열하여 만든 암호문이 있다.
암호문을 급히 수정해야 할 일이 발생했는데, 이 암호문은 특수 제작된 처리기로만 수정이 가능하다.
이 처리기는 다음과 같이 1개의 기능을 제공한다.
1. I(삽입) x, y, s : 앞에서부터 x의 위치 바로 다음에 y개의 숫자를 삽입한다. s는 덧붙일 숫자들이다.[ ex) I 3 2 123152 487651 ]
위의 규칙에 맞게 작성된 명령어를 나열하여 만든 문자열이 주어졌을 때, 암호문을 수정하고, 수정된 결과의 처음 10개 숫자를 출력하는 프로그램을 작성하여라.
[입력]
첫 번째 줄 : 원본 암호문의 길이 N ( 10 ≤ N ≤ 20 의 정수)
두 번째 줄 : 원본 암호문
세 번째 줄 : 명령어의 개수 ( 5 ≤ N ≤ 10 의 정수)
네 번째 줄 : 명령어
위와 같은 네 줄이 한 개의 테스트 케이스이며, 총 10개의 테스트 케이스가 주어진다.
[출력]
#기호와 함께 테스트 케이스의 번호를 출력하고, 공백 문자 후 수정된 암호문의 처음 10개 항을 출력한다.
입력11
449047 855428 425117 532416 358612 929816 313459 311433 472478 589139 568205
7
I 1 5 400905 139831 966064 336948 119288 I 8 6 436704 702451 762737 557561 810021 771706 I 3 8 389953 706628 552108 238749 661021 498160 493414 377808 I 13 4 237017 301569 243869 252994 I 3 4 408347 618608 822798 370982 I 8 2 424216 356268 I 4 10 512816 992679 693002 835918 768525 949227 628969 521945 839380 479976
19
566753 244528 233616 328235 268163 292641 646305 944392 643695 385788 444752 939244 637877 325283 779273 712343 953523 846222 204307
5
I 0 4 600576 565945 486128 594841 I 0 1 150706 I 8 8 556294 697547 932203 845517 116062 300371 621038 358830 I 10 8 747039 701738 805438 502654 476665 919177 367272 859931 I 15 3 844423 973297 658751
449047 855428 425117 532416 358612 929816 313459 311433 472478 589139 568205
7
I 1 5 400905 139831 966064 336948 119288 I 8 6 436704 702451 762737 557561 810021 771706 I 3 8 389953 706628 552108 238749 661021 498160 493414 377808 I 13 4 237017 301569 243869 252994 I 3 4 408347 618608 822798 370982 I 8 2 424216 356268 I 4 10 512816 992679 693002 835918 768525 949227 628969 521945 839380 479976
19
566753 244528 233616 328235 268163 292641 646305 944392 643695 385788 444752 939244 637877 325283 779273 712343 953523 846222 204307
5
I 0 4 600576 565945 486128 594841 I 0 1 150706 I 8 8 556294 697547 932203 845517 116062 300371 621038 358830 I 10 8 747039 701738 805438 502654 476665 919177 367272 859931 I 15 3 844423 973297 658751
출력
#1 449047 400905 139831 408347 512816 992679 693002 835918 768525 949227
#2 150706 600576 565945 486128 594841 566753 244528 233616 556294 697547
...
#2 150706 600576 565945 486128 594841 566753 244528 233616 556294 697547
...
import java.util.ArrayList;
import java.util.Scanner;
//문제 파악 먼저
//추가를 하는데, 그 자리에 추가가 아닌, 해당위치는 밀고 추가
//배열은 불가능하고, ArrayList 필요
public class Solution {
public ArrayList<Integer> solution(ArrayList<Integer> list, int[] arr2, int b) {
int j = 0;
while (j< arr2.length) {
list.add(b, arr2[j]);
b++;
j++;
}
return list;
}
public static void main(String[] args) {
Solution T = new Solution();
Scanner kb = new Scanner(System.in);
for (int k = 1; k <= 10; k++) {
int n = kb.nextInt();
int b = 0;
ArrayList<Integer> list = new ArrayList<>();
int[] arr = new int[n];
int[] arr2 = null;
for (int i = 0; i < n; i++) {
list.add(kb.nextInt());
}
int m = kb.nextInt();
for (int j = 0; j < m; j++) {
char c = kb.next().charAt(0);
b = kb.nextInt();
int z = kb.nextInt();
arr2 = new int[z];
for (int a = 0; a < z; a++) {
arr2[a] = kb.nextInt();
}
T.solution(list, arr2, b);
}
System.out.print("#" + k + " ");
for (int v = 0; v < 10; v++) {
System.out.print(list.get(v) + " ");
}
System.out.println();
}
}
}
728x90
반응형
'Java > Java 알고리즘 SWEA' 카테고리의 다른 글
[SW 아카데미] 1230. [S/W 문제해결 기본] 8일차 - 암호문3 (0) | 2022.05.27 |
---|---|
[SW 아카데미] 1229. [S/W 문제해결 기본] 8일차 - 암호문2 (0) | 2022.05.27 |
[SW 아카데미] 1225. [S/W 문제해결 기본] 7일차 - 암호생성기 (0) | 2022.05.27 |
[SW 아카데미] 1221. [S/W 문제해결 기본] 5일차 - GNS (0) | 2022.05.26 |
[SW 아카데미] 1220. [S/W 문제해결 기본] 5일차 - Magnetic (0) | 2022.05.26 |