- 각 테스트 케이스 별
첫 번째 줄 : N 원본 암호문 길이
두 번째 줄 : 원본 암호문
세 번째 줄 : M 명령어 개수
네 번째 줄 : 명령어
명령어 : | x, y, s
x : 삽입할 위치
y : 삽입할 숫자 개수
s : 덧붙일 숫자
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) throws Exception {
// System.setIn(new FileInputStream("res/1228/input.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
// int T = Integer.parseInt(st.nextToken());
for(int test_case = 1; test_case <= 10; test_case++) {
// 첫 번째 줄
st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
// 두 번째 줄
st = new StringTokenizer(br.readLine());
LinkedList<Integer> list = new LinkedList<>();
for (int i = 0; i < N; i++) {
list.add(Integer.parseInt(st.nextToken()));
}
// 세 번째 줄
st = new StringTokenizer(br.readLine());
int M = Integer.parseInt(st.nextToken()); // 명령어 개수
// 네 번째 줄
st = new StringTokenizer(br.readLine());
for (int i = 0; i < M; i++) {
st.nextToken(); // | 빼기
int x = Integer.parseInt(st.nextToken()); // 삽입할 위치
int y = Integer.parseInt(st.nextToken()); // 삽입할 개수
for (int j = x; j < x + y; j++) {
if (j != 10) {
list.add(j, Integer.parseInt(st.nextToken()));
continue;
}
st.nextToken();
}
}
sb.append("#" + test_case + " ");
for (int i = 0; i < 10; i++) {
sb.append(list.get(i) +" ");
}
sb.append("\n");
} // [E] test_case
System.out.println(sb);
}
}
단순한 구현문제입니다.
암호 사이에 값을 입력하기 때문에 LinkedList를 사용하여 중간에 삽입이 일어나도록 구현하였습니다.
출력이 최대 10개까지만 진행되므로, 추가적인 입력이 10 이상 된다면 List에 add하는 연산이 일어나지 않도록 하였습니다.
~~
[Baekjoon] 백준 10163 색종이 (B1, 구현) - Java (1) | 2023.02.21 |
---|---|
[Baekjoon] 백준 3040 백설 공주와 일곱 난쟁이 (B2, 조합) - Java (0) | 2023.02.21 |
[SWEA] 1859. 백만 장자 프로젝트 (D2^) - Python (0) | 2022.11.24 |
[Baekjoon] 백준 1541번 문제 풀이 (Python) (0) | 2022.05.20 |
[Baekjoon] 백준 5585번 문제 풀이 (Python) (0) | 2022.05.19 |