728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Data Structures > Java List
이 문제의 경우 목록에서 수행할 수 있는 두 가지 유형의 쿼리가 있습니다.
- 인덱스 x에 y 삽입
Insert x y
- 인덱스 x에서 요소를 삭제
Delete x
N 정수의 목록 L이 주어지면 목록에 대해 Q 쿼리를 수행합니다. 모든 쿼리가 완료되면 수정된 목록을 공백으로 구분된 한 줄의 정수로 인쇄합니다.
Input Format
첫 번째 줄은 정수 N(L의 초기 요소 수)을 포함합니다.
두 번째 줄에는 L을 설명하는 N개의 공백으로 구분된 정수가 있습니다.
세 번째 줄에는 정수 Q(쿼리 수)가 포함됩니다.
2Q 후속 줄은 쿼리를 설명하고 각 쿼리는 두 줄에 걸쳐 설명됩니다.
- 쿼리의 첫 번째 줄에 문자열 삽입이 포함되어 있으면 두 번째 줄에는 두 개의 공백으로 구분된 정수 x y가 포함되며 값 y는 인덱스 x의 L에 삽입되어야 합니다.
- 쿼리의 첫 번째 줄에 문자열 삭제가 포함되어 있으면 두 번째 줄에는 L에서 요소를 삭제해야 하는 인덱스 x가 포함됩니다.
Constraints
- 1 ≤ N ≤ 4000
- 1 ≤ Q ≤ 4000
- 각 요소는 32비트 정수입니다.
Output Format
업데이트된 목록 L을 공백으로 구분된 한 줄의 정수로 출력합니다.
Sample Input
5
12 0 1 78 12
2
Insert
5 23
Delete
0
Sample Output
0 1 78 12 23
Explanation
- L = [12, 0, 1, 78, 12]
- Q₀ : 인덱스 5에 23을 삽입합니다.
- L₀ = [12, 0, 1, 78, 12, 23]
- Q₁ : 인덱스 0에 있는 요소를 삭제합니다.
- L₁ = [0, 1, 78, 12, 23]
모든 Q 쿼리를 수행한 후 L₁을 공백으로 구분된 한 줄의 정수로 출력합니다.
Code
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i=0; i<N; i++) {
list.add(sc.nextInt());
}
int Q = sc.nextInt();
for(int i=0; i<Q; i++) {
String query = sc.next();
if( query.equals("Insert") ) {
int x = sc.nextInt();
int y = sc.nextInt();
list.add(x, y);
continue;
}
if( query.equals("Delete") ) {
int x = sc.nextInt();
list.remove(x);
continue;
}
}
System.out.println( list.toString().replaceAll("[^0-9 ]","") );
}
}
참고
개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.
728x90
반응형
'> 개발-IT-인터넷 > > JAVA' 카테고리의 다른 글
자바 List와 Map의 차이점 (1) | 2023.10.06 |
---|---|
[해커랭크(HackerRank) JAVA 풀이] - Java Map (1) | 2023.10.06 |
[해커랭크(HackerRank) JAVA 풀이] - Java 1D Array (Part 2) (0) | 2023.10.04 |
[해커랭크(HackerRank) JAVA 풀이] - Java Arraylist (0) | 2023.09.27 |
[해커랭크(HackerRank) JAVA 풀이] - Java Subarray (0) | 2023.09.26 |