전체코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class SWEA_1228_암호문1 {
static int N, T = 10, cmdNum, plain[];
static String cmd, tmp;
public static void main(String[] args) throws IOException {
int idx, num;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
for(int test = 1; test<=T; test++) {
N = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
plain = new int[T];
for(int i=0; i<N; i++) {
if(i<T)
plain[i] = Integer.parseInt(st.nextToken());
else
tmp = st.nextToken();
}
cmdNum = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
for(int i=0; i<cmdNum; i++) {
cmd = st.nextToken();
idx = Integer.parseInt(st.nextToken());
num = Integer.parseInt(st.nextToken());
push(idx, num);
for(int j=idx; j<idx+num; j++) {
if(j<T)
plain[j] = Integer.parseInt(st.nextToken());
else{
tmp = st.nextToken();
}
}
}
System.out.print("#" + test);
for(int i=0; i<10; i++) {
System.out.print(" " + plain[i]);
}
System.out.println();
}
}
private static void push(int idx, int num) {
for(int i=T-num-1; i>=idx; i--) {
plain[i+num] = plain[i];
}
}
}
문제 핵심 부분
cmdNum = Integer.parseInt(br.readLine()); //명령어 개수
st = new StringTokenizer(br.readLine());
for(int i=0; i<cmdNum; i++) {
cmd = st.nextToken(); // I(삽입) 명령어
idx = Integer.parseInt(st.nextToken()); // 삽입될 자리
num = Integer.parseInt(st.nextToken()); // 삽입될 개수
push(idx, num); // 삽입될 자리를 비워놓는 함수 실행.
for(int j=idx; j<idx+num; j++) { // 삽입될 자리에 입력된 수들 삽입
if(j<T) // 이것 또한 10개 이상은 필요없으므로 tmp 에담고 배열에 저장하지 않는다.
plain[j] = Integer.parseInt(st.nextToken());
else{
tmp = st.nextToken();
}
}
}
Push 함수
private static void push(int idx, int num) {
for(int i=T-num-1; i>=idx; i--) { // 삽입될 인덱스부터 문자 개수까지 기존 배열의 요소들을 밀어놓는다.
plain[i+num] = plain[i];
}
}
결국 출력될 암호문은 10개이므로 그 이외의 연산들을 생략하는 것이 포인트인 문제였다.
'알고리즘문제풀이' 카테고리의 다른 글
[JAVA] SWEA 1226 미로1 [BFS, DFS] (0) | 2020.08.17 |
---|---|
[JAVA] SWEA 7699 수지의 수지 맞는 여행 [BFS] (0) | 2020.08.17 |
[JAVA] SWEA 1205 View (0) | 2020.08.17 |
[JAVA] SWEA 1234 비밀번호 (0) | 2020.08.16 |
[JAVA] SWEA 1225 암호 생성기 (0) | 2020.08.15 |