1. 문제
출처 :
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14w-rKAHACFAYD
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
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개 항을 출력한다.
2. 풀이 코드 ArrayList 사용
package com.ssafy.day04.stack;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Solution_D3_1228_김유경 {
public static void main(String[] args) throws Exception {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st=null;
for(int i=0;i<2;i++) { //테스크케이스 10개
st=new StringTokenizer(br.readLine());
int N=Integer.parseInt(st.nextToken());//원문의 길이
ArrayList<String> list=new ArrayList<>(); //링크드 리스트 생성
st=new StringTokenizer(br.readLine());
for(int k=0;k<N;k++) { //원문 리스트에 삽입
list.add(st.nextToken());
}
st=new StringTokenizer(br.readLine());
int commend=Integer.parseInt(st.nextToken()); //명령어의 개수 읽어온다.
//명령어를 읽어온다.
st=new StringTokenizer(br.readLine());
for(int j=0;j<commend;j++) { //명령어의 개수만큼 반복.
if(st.nextToken().equals("I")) { //I문자 날려버
int index=Integer.parseInt(st.nextToken()); //몇번째 위치에 삽입할건지.
int size=Integer.parseInt(st.nextToken()); //삽입할 원소가 몇개인지.
for(int z=0;z<size;z++) {
list.add(index+z,st.nextToken());
}
}
}
System.out.printf("#%d ",i+1);
for(int m=0;m<10;m++) {
System.out.printf("%s ",list.get(m));
}
System.out.println();
}
}
}
'노력만이 살길! > 알고리즘' 카테고리의 다른 글
[JAVA][SWEA][모의SW] 1952번 수영장 이용요금 (0) | 2022.02.10 |
---|---|
[JAVA][SWEA] 1210번 [S/W 문제해결 기본] Ladder1 (0) | 2022.02.10 |
[JAVA][SWEA] 1225 암호생성기 (0) | 2022.02.08 |
[JAVA][백준 2493] 탑 정답 (0) | 2022.02.08 |
1141 : 불쾌한 날(Bad Hair Day) (0) | 2022.02.07 |