문제
0 ~ 999999 사이의 수가 나열된 암호문이 있을 때, 명령에 따라 암호문을 수정하는 문제
명령문>
I(삽입) x, y, s : x는 삽입할 인덱스, y는 삽입할 숫자의 수, s는 삽입할 숫자들
D(삭제) x, y : x는 삭제할 데이터의 인덱스, y는 삭제할 데이터의 수
풀이방법
데이터의 삽입이 많은 문제로 연결리스트 구조를 사용해 연산의 수를 줄인다
소스코드
package samsung;
import java.util.*;
public class s_1229 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for(int t = 1; t <= 10; t++) {
int n = sc.nextInt();
LinkedList <Integer> l = new LinkedList<>();
for(int i = 0; i < n; i++) {
int tmp = sc.nextInt();
l.add(tmp);
}
int c = sc.nextInt();
for(int i = 0; i < c; i++) {
String s = sc.next();
if(s.equals("I")) {
int idx = sc.nextInt();
int m = sc.nextInt();
int[] a = new int[m];
for(int j = 0; j < m; j++) {
a[j] = sc.nextInt();
}
for(int j = m-1; j >= 0; j--) {
l.add(idx, a[j]);
}
}else if(s.equals("D")) {
int idx = sc.nextInt();
int m = sc.nextInt();
for(int j = 0; j < m; j++) {
l.remove(idx);
}
}
}
System.out.print("#" + t + " ");
for(int i = 0; i < 10; i++) {
System.out.print(l.get(i) + " ");
}
System.out.println();
}
}
}
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA] 1234. 비밀번호 (0) | 2020.02.09 |
---|---|
[SWEA] 1230. 암호문3 (0) | 2020.02.09 |
[SWEA] 1940. 가랏! RC카! (0) | 2020.02.05 |
[SWEA] 1288. 새로운 불면증 치료법 (0) | 2020.02.05 |
[SWEA] 1284. 수도 요금 경쟁 (0) | 2020.02.05 |
댓글