1230 암호문3

Sungmin·2023년 11월 9일
0

SWEA 알고리즘

목록 보기
19/26

링크텍스트

내 풀이

import java.io.*;
import java.util.*;
 
public class Solution {
    static StringBuilder sb = new StringBuilder();
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
         
        for (int t = 1; t <= 10; t++) {
            int N = Integer.parseInt(br.readLine()); //첫번째줄
            List<Integer> list = new LinkedList<>();
            StringTokenizer st = new StringTokenizer(br.readLine());
             
            for (int i = 0; i < N; i++) {    
                list.add(Integer.parseInt(st.nextToken()));
            }
            int M = Integer.parseInt(br.readLine()); //세번째줄
            st = new StringTokenizer(br.readLine()); //네번째줄
 
            for (int i = 0; i < M; i++) {  
                if (st.nextToken().equals("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++;
                    }
 
                } else if (st.nextToken().equals("D")) {
                    int x = Integer.parseInt(st.nextToken());
                    int y = Integer.parseInt(st.nextToken());
                     
                    for (int j = 0; j < y; j++) {
                        list.remove(x);
                    }
 
                } else if (st.nextToken().equals("A")) {
                    int y = Integer.parseInt(st.nextToken());
 
                    for (int j = 0; j < y; j++) {
                        list.add(Integer.parseInt(st.nextToken()));
                    }
                } 
            }
            sb.append("#").append(t).append(" ");
            for (int i = 0; i < 10; i++) {
                sb.append(list.get(i)).append(" ");
            }
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

Solution

import java.io.*;
import java.util.*;
 
public class Solution {
    static StringBuilder sb = new StringBuilder();
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
         
        for (int t = 1; t <= 10; t++) {
            int N = Integer.parseInt(br.readLine()); //첫번째줄
            List<Integer> list = new LinkedList<>();
            StringTokenizer st = new StringTokenizer(br.readLine());
             
            for (int i = 0; i < N; i++) {    
                list.add(Integer.parseInt(st.nextToken()));
            }
            int M = Integer.parseInt(br.readLine()); //세번째줄
            st = new StringTokenizer(br.readLine()); //네번째줄
 
            while (st.hasMoreTokens()) {
                String cmd = st.nextToken();  
                if (cmd.equals("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++;
                    }
 
                } else if (cmd.equals("D")) {
                    int x = Integer.parseInt(st.nextToken());
                    int y = Integer.parseInt(st.nextToken());
                     
                    for (int j = 0; j < y; j++) {
                        list.remove(x);
                    }
 
                } else if (cmd.equals("A")) {
                    int y = Integer.parseInt(st.nextToken());
 
                    for (int j = 0; j < y; j++) {
                        list.add(Integer.parseInt(st.nextToken()));
                    }
                } 
            }
            sb.append("#").append(t).append(" ");
            for (int i = 0; i < 10; i++) {
                sb.append(list.get(i)).append(" ");
            }
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

배운점

최근에 풀었던 암호문2 문제와 거의 유사한 문제였다.

풀이 방식도 크게 다르지 않아 쉽게 풀어나갔는데 계속 결과가 다르게 나오는 일이 발생하였다.

문제는 입력을 잘못받고있었다.

내 풀이에서 보면 st.nextToken()을 조건 안에서 받았는데 암호2풀땐 문제가 안됐던게 확인할 문자가 "I" 밖에 없었기 때문이다.

이번엔 확인할 문자가 3개가 되었고 입력은 한번에 받아 확인해줘야 한다.

profile
Let's Coding

0개의 댓글