[SWEA] #1228 암호문1

16949 단어 JavaSWEAalgorithmJava

Link

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14w-rKAHACFAYD&categoryId=AV14w-rKAHACFAYD&categoryType=CODE


Code

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.StringTokenizer;

class Solution {
    public static void main(String args[]) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        for (int testCase = 1; testCase <= 10; testCase++) {
            StringTokenizer st = new StringTokenizer(br.readLine(), "");
            int N = Integer.parseInt(st.nextToken());
            st = new StringTokenizer(br.readLine(), " ");
            LinkedList<String> list = new LinkedList<>();
            for (int i = 0; i < N; i++) {
                list.add(st.nextToken());
            }
            st = new StringTokenizer(br.readLine(), " ");
            st.nextToken();
            st = new StringTokenizer(br.readLine(), " ");
            while (st.hasMoreTokens()) {
                char oper = st.nextToken().charAt(0);
                if (oper == 'I') {
                    int x = Integer.parseInt(st.nextToken());
                    int y = Integer.parseInt(st.nextToken());
                    for (int i = 0; i < y; i++) {
                        list.add(x + i, st.nextToken());
                    }
                }
                else if (oper == 'D') {
                    int x = Integer.parseInt(st.nextToken());
                    int y = Integer.parseInt(st.nextToken());
                    for (int i = 0; i < y; i++) {
                        list.remove(x);
                    }
                }
                else if (oper == 'A') {
                    int y = Integer.parseInt(st.nextToken());
                    for (int i = 0; i < y; i++) {
                        list.addLast(st.nextToken());
                    }
                }
            }
            System.out.printf("#%d ", testCase);
            for (int i = 0; i < 10; i++) {
                System.out.print(list.get(i) + " ");
            }
            System.out.println();
        }
    }
}

Solution

LinkedList를 사용하여 풀었고 기본적으로 암호문1~3이 모두 같은문제에 기능만 추가하였기에 현재 문제에서 미리 기능들을 구현하였다.
삽입일때는 add메소드를 이용하였고 같은 위치에 넣으면 안되기때문에 +i를 붙여 문제가 원하는 위치에 삽입하였다.
삭제일때는 remove메소드를 사용하였고
추가일때는 addLast메소드를 이용하여 마지막 위치에 데이터를 추가하였다.

좋은 웹페이지 즐겨찾기