728x90
https://swexpertacademy.com/main/solvingProblem/solvingProblem.do
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com

처음 생각했던 논리인데 조금 다르게 풀었다.
한 줄에 명령이 들어오면 split을 어떻게 해줄지가 고민이었는데
생각해 보니 그냥 띄어쓰기로 잘 구분이 되니 sc.nextInt()나 sc.next()를 쓰면 되는 거였다.
import java.util.LinkedList;
import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for (int tc = 1; tc <= 10; tc++) {
int num = sc.nextInt();
LinkedList<Integer> list = new LinkedList<>();
for (int i = 0; i < num; i++) {
list.add(sc.nextInt());
}
int m = sc.nextInt();
for (int t = 0; t < m; t++) {
String cmd = sc.next();
if (cmd.equals("I")) {
int x = sc.nextInt();
int y = sc.nextInt();
for (int i = 0; i < y; i++) {
list.add(x++, sc.nextInt());
}
//System.out.println(list);
}
else if (cmd.equals("D")) {
int x = sc.nextInt();
int y = sc.nextInt();
for (int i = 0; i < y; i++) {
list.remove(x); // D 2 면 2바로 다음은 원래 배열에서는 0 1 2 라서 자연스럽게 맞춰진다.
}
//System.out.println(list);
}
else {
int y = sc.nextInt();
// for (int i = 0; i < y; i++) {
// list.add(sc.nextInt());
// }
while(y-->0) {
list.add(sc.nextInt());
}
//System.out.println(list);
}
}
System.out.print("#"+tc+" ");
for(int i=0;i<10;i++) {
System.out.print(list.get(i)+" ");
}
System.out.println();
}
}
}
BufferedReader나 다른 방법으로도 해결을 해보면 좋을 것 같다.
728x90
'SW Expert Academy > SWEA D3' 카테고리의 다른 글
| [SW Expert Academy] 문자열의 거울상 (D3) (0) | 2024.09.02 |
|---|---|
| [SW Expert Academy] 홀수일까 짝수일까 (D3) (0) | 2024.09.02 |
| [SW Expert Academy] [S/W 문제해결 기본] 3일차 - String (D3) (0) | 2024.09.02 |
| [SW Expert Academy] 직사각형 길이 찾기 (D3) (0) | 2024.09.01 |
| [SW Expert Academy] [S/W 문제해결 기본] 5일차 - Magnetic (D3) (1) | 2024.09.01 |