꾸물꾸물 졔의 개발공부

SWEA 1228 - 암호문1 ( JAVA ) 본문

알고리즘/SWEA

SWEA 1228 - 암호문1 ( JAVA )

체제 2022. 2. 8. 22:59

출처 - SW Expert Academy 


알고리즘] - LinkedList 자료구조 

LinkedList 로 간단히 구현가능한 문제 .

add 함수를 활용하여서 , 주어진 위치에 값을 add 하면 된다 ,( 9List 인터페이스에서 기존 값들은 알아서 뒤로 보냄 ) 

add( 인덱스, 넣을 값 ) 을 적절히 사용하면 되는데, 인덱스를 주의하자 !! 

ex) I 1 3 123 456 789 이면, 리스트의 인덱스는 0부터 시작이므로, 인덱스 1에 넣으면 된다. 

즉, 입력받은 x 값을 그대로 인덱스로 가져가면 됨 !! 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.io.*;
import java.util.*;
 
public class Solution {
    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader br= new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb= new StringBuilder();
        StringTokenizer st;
        for(int test =1 ; test <=10; test ++ ) {
            List <Integer> list= new LinkedList<>(); 
             int N = Integer.parseInt(br.readLine()); // 원본 암호문의 길이 
            st= new StringTokenizer(br.readLine(), " ");
            for(int i=0; i<N; i++
                list.add(Integer.parseInt(st.nextToken())); // 원본 암호문 
            
            int num = Integer.parseInt(br.readLine()); // 명령어의 갯수
            
            st= new StringTokenizer(br.readLine(), " ");
            for(int i=0; i<num; i++) {
                String insert= st.nextToken(); // '  I '
                int x = Integer.parseInt(st.nextToken()); // 어디에 넣을건지 ? 
                int y = Integer.parseInt(st.nextToken());
                for(int j=0 ; j<y; j++) {
                    list.add(x, Integer.parseInt(st.nextToken()));
                    x++;
                }
                
            }// end of for 
                sb.append("#").append(test).append(" ");
            for(int i=0; i<10; i++
                sb.append(list.get(i)).append(" ");
            
        sb.append("\n");
 
            
        } // end of 10 test case
        System.out.println(sb);
    }
}
 
cs

-> 10번의 테스트케이스를 돌며, 입력받은 x 인덱스부터 총 y개의 암호문을 list에 넣는다 .

인덱스는 y개 만큼 증가하면서 추가해야 하므로 for 문 내부에서 x++ ;