여니의 취준 준비/코딩테스트 (Java)

[1228] 암호문1 in Java

여니's 2022. 8. 8. 15:57

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14w-rKAHACFAYD&categoryId=AV14w-rKAHACFAYD&categoryType=CODE&problemTitle=1228&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 

 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


 

접근 방식

해당 문제에서는

배열의 길이가 가변적으로 변해야하므로

일반 배열이 아닌 ArrayList를 사용해야한다.

x의 위치 바로 다음 위치에 y개의 문자열이 삽입되도록 하는 문제!

 

 

시행착오 & 깨달은 점

- add 메서드를 이용해서 원하는 인덱스에 값을 추가할 수 있다는 걸 몰랐고, 

이번 문제를 통해 알게 되었다. 

add (인덱스, 넣고자 하는 데이터);

 

- 리스트의 값을 가져올 땐 get() 메서드를 사용해야한다.

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
41
package week2;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
 
public class s1228 {
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb= new StringBuilder();
        for (int t = 1; t <= 10; t++) {
            int n=Integer.parseInt(br.readLine()); // 암호문의 길이
            StringTokenizer st = new StringTokenizer(br.readLine());
            List<String> array = new ArrayList<String>();
            for (int i = 0; i < n; i++) {
                array.add(st.nextToken());
            }
            int m=Integer.parseInt(br.readLine()); // 명령어 개수
            st=new StringTokenizer(br.readLine());
            for (int i = 0; i < m; i++) {
                String f= st.nextToken();
                int x=Integer.parseInt(st.nextToken()); // x 위치
                int y=Integer.parseInt(st.nextToken());  // y개의 문자열 s
                for (int j = 0; j < y; j++) {
                    array.add(x+j, st.nextToken());
                }
            }
            sb.append("#"+t+" ");
            for(int j=0; j<10; j++) {
                sb.append(array.get(j)+" ");
            }
            sb.append("\n");
        }
        System.out.println(sb);
    }
 
}
cs