> 개발-IT-인터넷/> JAVA

[해커랭크(HackerRank) JAVA 풀이] - Java List

jini:) 2023. 10. 5. 11:06
728x90
반응형
해커랭크 - https://www.hackerrank.com/
Prepare > Java > Data Structures > Java List
 

HackerRank

HackerRank is the market-leading technical assessment and remote interview solution for hiring developers. Learn how to hire technical talent from anywhere!

www.hackerrank.com

 

이 문제의 경우 목록에서 수행할 수 있는 두 가지 유형의 쿼리가 있습니다.

  1. 인덱스 x에 y 삽입
    Insert
    x y​
  2. 인덱스 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 ]","") );
    }
}

 

 

참고

자바 List와 Map의 차이점

 

자바 List와 Map의 차이점

[해커랭크(HackerRank) JAVA 풀이] - Java List 해커랭크 - https://www.hackerrank.com/ Prepare > Java > Data Structures > Java List HackerRank HackerRank is the market-leading technical assessment and remote interview solution for hiring developers.

ji-ni.tistory.com

 

 

개인 공부를 위한 포스팅입니다.
모든 번역, 코드는 완벽하지 않을 수 있습니다.

 

 

 

728x90
반응형